是否不需要在代码的开头定义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”解释为哈希变量吗?这是发生了什么
答案 0 :(得分:5)
如果没有use strict
,则在使用全局变量时会自动创建它们。方便一行脚本,但通常不赞成。此外,还会自动创建哈希中的键。您会看到更少的人抱怨$trans{'key1'}{'subkey'}{'detailkey'}{'deepkey'} ++
这样的代码会创建 key1 ,子项, detailkey 和 deepkey 如果它们尚不存在,则在每个哈希值中都很强大。