Tengo un script Perl que cuenta el número de ocurrencias de varias cadenas en un archivo de texto. Quiero poder verificar si una cierta cadena aún no es una clave en el hash. ¿Hay una mejor manera de hacer esto por completo?¿Cómo puedo ver si un hash Perl ya tiene una determinada clave?
Aquí es lo que estoy haciendo:
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;
}
}
}
La pregunta es, ¿por qué te molestas con eso? Si no existe, entonces $ n será undef. El valor numérico de Undef es 0, entonces $ n + 1 = 1. No hay necesidad de verificar si existe en el hash para comenzar. –