Perl çok iyidir. Perl’ün dökümantasyonu çok iyidir. Perl’ün topluluğu … çok iyidir. Ancak bu dil biraz kalabalık ve karmaşıktır. Bu yüzden az zaman harcayan, daha belirli çizgileri olan ve başından beri eşsiz OO özellikleri olan bir dilin hasretini çeken Perl’cüler için Ruby uygun olabilir.
Benzerlikler
Perl’de olduğu gibi Ruby’de de,…
- CPAN benzeri bir paket yönetim sistemi vardır (RubyGems)
- Regex’ler içine gömülüdür. Bon appétit!
- Birçok sık kullanılan özellik içinde gömülüdür.
- Parantezler çoğunlukla isteğe bağlıdır
- String’ler aynı şekilde çalışır.
- Perl gibi string ve regex belirleme yapıları vardır. (
%q{bu}(tek-tırnak), veya%Q{bu}(çift-tırnaklı), ve%w{bu tek-tırnaklı kelime listesi}gibi. İsterseniz%Q|bunu|%Q(veya)%Q^diğer bir^sınırlayıcıyı da kullanabilirsiniz). - Çift tırnak içinde değişken değerlerine
"bu #{şekilde}"erişebilirsiniz. (Ayrıca bu#{}içine Ruby kodu da koyabilirsiniz. - Shell komutu program içinden
`backtick’ler`(ters tek tırnaklar) ile çağrılır (tarih = `date`gibi). - Gömülü döküman aracı vardır (Ruby’ninki RDoc olarak adlandırılmıştır).
Farklar
Ruby’de Perl’den farklı olarak,…
- Perl’deki gibi içeriğe bağlı kurallar yoktur.
- Bir değişken gösterdiği nesne ile aynı şey değildir. Sadece nesneye referans verir.
$ve@karakterleri bazen değişken isminin ilk harfi olarak kullanılabilir. Ama bunlar tipi değil kapsamı belirtir. (global değişkenler$ile başlar, nesne nitelikleri@ile başlar ve sınıf nitelikleri@@ile başlar).- Array değerleri parantezler yerine köşeli parantezler içinde gösterilir.
- Listelerden oluşan bir liste ürettiğinizde büyük bir liste oluşmaz. Array’lerden oluşan bir array elde edersiniz.
subyerinedefkullanılır.- Her satırın sonunda noktalı virgül gerekmez. Lafı açılmışken, sınıf
tanımları, fonksiyon tanımları ve case blokları
endanahtar kelimesi ile biter. - Nesneler güçlü tiplenirler. Nesnelerin tipini dönüştürmek için
foo.to_i,foo.to_sgibi elle yapmalısınız. eq,ne,lt,gt,ge, veyaleyoktur.- “Diamond” operatörü (
<>) yoktur. Genellikle bunun yerineIO.fonksiyonkullanılır. - “fat comma” (
=>) sadece hash içinde kullanılır. undefyoktur. Ruby’denilvardır.nilde diğer herşey gibi bir nesnedir. Tanımsız değişken ile aynı şey değildir. Boolean sorgulanırsafalseolarak değer görür.- Doğruluğu sorgulandığında sadece
falsevenilolumsuz değer dönerler diğer herşey olumlu (true) değer döner (0,0.0, ve"0"dahil herşey!) - PerlMonks gibi biryer yoktur. Ancak ruby-talk mailing list ihtiyaclarınızı karşılar.