作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人能帮我理解这个 Perl 程序的输出吗:
use Data::Dumper;
my %hash;
$hash{hello} = "foo";
$hash{hello}{world} = "bar";
print $hash{hello} . "\n";
print $hash{hello}{world} . "\n";
print Dumper(\%hash);
foo
bar
$VAR1 = {
'hello' => 'foo'
};
use Data::Dumper;
my %hash;
$hash{hello}{world} = "bar";
$hash{hello} = "foo";
print $hash{hello} . "\n";
print $hash{hello}{world} . "\n";
print Dumper(\%hash);
foo
$VAR1 = {
'hello' => 'foo'
};
use strict;
会捕获这个,但我更感兴趣的是知道
怎么样字符串“foo”仍在打印中。
最佳答案
您的代码丢失
use strict;
C:\Temp> huiCan't use string ("foo") as a HASH ref while "strict refs" in use at C:\Temp\hui.pl line 7.
Make sure all your scripts start with:
use strict;
use warnings;
$hash{hello} = "foo";
$hash{hello}
是
不是 一个哈希引用。
$hash{hello}{world} = "bar";
"foo"
作为散列引用并创建散列
%main::foo
和套
$foo{world}
至
"bar"
.
print Dumper \%hash;
%hash
的内容.然而,当你这样做时
print $hash{hello}{world} . "\n";
$foo{world}
.
strict
,您不会发现脚本已经在整个包 namespace 中进行了践踏。
print Dumper \%main::;
print Dumper \%main::foo;
关于perl - 为什么 Perl 的自动激活在这种情况下起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1759488/
我是一名优秀的程序员,十分优秀!