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.
sub
yerinedef
kullanı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ı
end
anahtar kelimesi ile biter. - Nesneler güçlü tiplenirler. Nesnelerin tipini dönüştürmek için
foo.to_i
,foo.to_s
gibi elle yapmalısınız. eq
,ne
,lt
,gt
,ge
, veyale
yoktur.- “Diamond” operatörü (
<>
) yoktur. Genellikle bunun yerineIO.fonksiyon
kullanılır. - “fat comma” (
=>
) sadece hash içinde kullanılır. undef
yoktur. Ruby’denil
vardır.nil
de diğer herşey gibi bir nesnedir. Tanımsız değişken ile aynı şey değildir. Boolean sorgulanırsafalse
olarak değer görür.- Doğruluğu sorgulandığında sadece
false
venil
olumsuz 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.