当我运行这个 Perl 脚本时:
#!/bin/perl
use XML::Bare;
$ob = new XML::Bare(text=>'<xml><name>Bob</name></xml>');
for $i (keys %{$ob->{xml}}) {print "KEY: $i\n";}
我没有输出。但是,如果我放入$ob
一个my()
:
#!/bin/perl
use XML::Bare;
my($ob) = new XML::Bare(text=>'<xml><name>Bob</name></xml>');
for $i (keys %{$ob->{xml}}) {print "KEY: $i\n";}
我得到这个输出:
KEY: _z
KEY: _i
KEY: xml
KEY: _pos
为什么要my()
如此彻底地改变这种行为,特别是考虑到我处于顶层,my()
根本不应该有任何影响?