perl哈希混淆

时间:2011-06-07 19:05:12

标签: perl hash reference scope

您是否在下面的表达中看到任何错误。

    my $container;
    while (my $val = $details->next()){
          $container->{'total_vals'} += 1;
          my $section_name= 'some string from some db query';
          $container->{"$section_name"}->{'total_vals'} += 1;
    }
    print Dumper $section;

以上代码适用于未使用严格no strict的情况。但第二个键不包含有效值。如果使用严格的子,我得到以下警告。让我知道我错过了什么。

Can't use string ("140360537348481") as a HASH ref while "strict refs" in use at source.pm line 61."

1 个答案:

答案 0 :(得分:4)

这意味着您可能在某个时候设置了$container->{"$section_name"} = "140360537348481";。什么时候应该完成$container->{"$section_name"} = {};