Metin dosyasındaki çeşitli dizelerin tekrar sayısını belirten bir Perl betiğim var. Belirli bir dizenin henüz hashta bir anahtar olup olmadığını kontrol edebilmek istiyorum. Bunu daha iyi yapmanın daha iyi bir yolu var mı? İşte Perl hash'ın zaten bir anahtarının olup olmadığını nasıl görebilirim?
yapıyorum budur:foreach $line (@lines){
if(($line =~ m|my regex|))
{
$string = $1;
if ($string is not a key in %strings) # "strings" is an associative array
{
$strings{$string} = 1;
}
else
{
$n = ($strings{$string});
$strings{$string} = $n +1;
}
}
}
Sorun şu ki, neden bununla uğraşmıyorsunuz? Eğer mevcut değilse, $ n undef olacaktır. Undef'in sayısal değeri 0, yani $ n + 1 = 1. Başlangıçta karma olup olmadığını kontrol etmeye gerek yok. –