У меня есть скрипт Perl, который подсчитывает количество вхождений различных строк в текстовом файле. Я хочу, чтобы проверить, не является ли определенная строка еще не ключом в хеше. Есть ли лучший способ сделать это в целом?Как я могу узнать, есть ли у хэша Perl уже определенный ключ?
Вот что я делаю:
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;
}
}
}
Вопрос в том, почему вы даже беспокоитесь об этом? Если он не существует, то $ n будет undef. Числовое значение Undef равно 0, поэтому $ n + 1 = 1. Нет необходимости проверять, существует ли он в хеше. –