Aar*_*ron 2 perl reference stringification
我正在运行perl,为sun4-solaris-64int构建的v5.6.1
我在数组上调用print:
print "@vals\n";
Run Code Online (Sandbox Code Playgroud)
输出看起来像:
HASH(0x229a4) uid cn attuid
Run Code Online (Sandbox Code Playgroud)
或者另一个例子:
@foo = {};
push(@foo, "c");
print "@foo I am done now\n";
Run Code Online (Sandbox Code Playgroud)
输出:
HASH(0x2ece0) c I am done now
Run Code Online (Sandbox Code Playgroud)
HASH(0x2ece0)来自哪里?
理解这类问题的关键是你在输出中得到一个额外的项目.这个项目是什么并不太重要.
一般来说,当容器变量中的容器变量多于(或少于)时,您要做的第一件事就是查看它的内容.Data :: Dumper模块附带Perl,可以为您打印数据结构:
use Data::Dumper;
print Dumper( \@foo );
Run Code Online (Sandbox Code Playgroud)
一旦看到容器中的内容,就可以开始向后工作以了解容器中的内容.你最终注意到在你初始化@foo之后它已经有了一个元素,这不是你想要的.
另一个技巧是检查列表中的元素数量:
print "There are " . @array . " elements in \@array\n";
Run Code Online (Sandbox Code Playgroud)
如果你得到一个你不想要的数字,那就向后工作以找出额外元素出现的时间.
| 归档时间: |
|
| 查看次数: |
491 次 |
| 最近记录: |