perl哈希混淆

perl哈希混淆,perl,hash,reference,scope,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'} +=

你觉得下面的表达有什么不对吗

    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;
上述代码在未使用strict时有效
无strict
。但第二个键不包含有效值。如果正在使用strict sub,我会得到以下警告。让我知道我错过了什么


在source.pm第61行使用“strict refs”时,不能使用字符串(“140360537348481”)作为散列引用。”

这意味着您可能在某个时候设置了
$container->{“$section\u name”}=“140360537348481”
。当您应该这样做时,
$container->{“$section\u name”}={}

这意味着您可能在某个时候设置了
$container->{“$section\u name”}=“140360537348481”

是的,但我不确定这是怎么发生的……让我再检查一下我的整个代码块……是的,很好……你是对的……让我在那里做些更改,看看发生了什么。我从上一个小时开始就挠头了。谢谢你给我指出了正确的轨迹……非常感谢你……@awake416:如果你想t并粘贴有问题的实际代码;如果没有,有时回答者无论如何都可以猜对,但这样做的可能性更小。@ysth从下一次开始我会注意的。有点像是的……但我不确定怎么会发生这种情况……让我再次检查我的整个代码块……是的,很完美……你是对的……让我在那里进行更改并查看发生了什么事自从上一个小时以来,我一直在挠头,谢谢你给我指出了正确的轨道……非常感谢你……@awake416:如果你剪切并粘贴有问题的实际代码,这真的很有帮助;如果你不这样做,有时回答者无论如何都能猜对,但这样做的可能性就小了。@ysth从下次开始我会小心的。
 “$section\u name”
$section”不是一回事“
,有一件事我纠正了一个很好的错误。你为什么不扔掉$container?除了print语句外,我认为$section没有任何用处。这本身将与“使用严格”相冲突。@runrig-yeh我应该转储另一个变量。它没有用,但我的问题得到了解决。
“$section\u name”
$section不同。“_name”
,有一件事我纠正了一个很好的拼写错误。你为什么不丢弃$container?除了print语句外,我认为$section没有任何用处。这本身将与“使用严格”相冲突。@runrig-yeh我应该转储另一个变量。这没用,但我的问题解决了。