Perl,0的串联

use*_*545 2 perl hash

我有以下代码:

foreach $string (@strings) {
    if ($hash{$string}) {
        $letter = $hash{$string};
        $text .= $letter;
    }
}
Run Code Online (Sandbox Code Playgroud)

其中$letter是一个字符或一个数字(例如:a,e,o,2,5 ......).它会创建一个精美的文本,但我在添加数字0时遇到问题.

如果$letter = 0它没有连接,例如给出28而不是2008.但是,如果$letter在那一刻是1或者aaaa,它给出21182aaaaaaaa8.

我认为它可能是与Perl相关的0和FALSE ...可能是?

非常感谢.

Mat*_*len 5

您测试以查看条目是否存在if ($hash{$string})但是还检查该值是否为true.请if (defined $hash{$string})改用.