Perl zayıf yazılmıştır ve içeriğe dayalıdır. Çoğu skaler, kullandığınız işleçlere bağlı olarak hem dizeler hem de sayılar olarak ele alınabilir.
$a = 7*6; $b = 7x6; print "$a $b\n";
Sen alırsın 42 777777
.
Bununla birlikte, ince bir fark var. Bir metin dosyasındaki sayısal verileri bir veri yapısına okuduğunuzda ve ardından bunu ile görüntülediğinizde Data::Dumper
, sayılarınızın alıntı yapıldığını fark edeceksiniz. Perl bunları dahili olarak dizeler olarak ele alır.
Oku: $my_hash{$1} = $2 if /(.+)=(.+)\n/;
.
Dökümü:'foo' => '42'
: Eğer çöplükte tırnaksız numaralarını isterseniz
okuyun: $my_hash{$1} = $2+0 if /(.+)=(.+)\n/;
.
Dökümü:'foo' => 42
$2+0
Perl, 2 $ 'ı bir sayı olarak ele aldığınızı fark ettikten sonra , çünkü sayısal bir operatör kullandınız.
Bunu iki karma ile karşılaştırmaya çalışırken fark ettim Data::Dumper
.