在perl中不需要在开头定义哈希?

时间:2013-12-04 05:51:31

标签: perl perl-data-structures

是否不需要在代码的开头定义perl哈希变量。

例如,我在脚本中发现了一个变量“trans”,它在代码中的任何位置都没有定义为my %trans%trans。但是以下代码似乎正在起作用。

$trans{$lang_code} = set_elements($files_to_process{$lang_code},@tags_to_extract);

$test = $trans{lc $Preferred_Language}->{'t_14'};

Perl在检查语法后继续将“trans”解释为哈希变量吗?这是发生了什么

1 个答案:

答案 0 :(得分:5)

如果没有use strict,则在使用全局变量时会自动创建它们。方便一行脚本,但通常不赞成。此外,还会自动创建哈希中的键。您会看到更少的人抱怨$trans{'key1'}{'subkey'}{'detailkey'}{'deepkey'} ++这样的代码会创建 key1 子项 detailkey deepkey