嘿,perl 修道士们,
我仍在思考如何正确取消引用。(我在发布之前阅读了类似的帖子,但不幸的是,我对这个概念仍然有些模糊。)
我有以下数组,它在内部由两个数组组成。(顺便说一句,我正在使用严格和警告的编译指示。)
use strict; use warnings;
my @a1; my @a2;
在哪里:
@a1 = ( "1MB", "2MB", ... )
和..
@a2 = ( "/home", "/home/debug", ... )
@a1 和 @a2 都是包含 51 行的数组。所以,我将这些填充到我的第二个数组中。
my @b;
push (@b, [ @a1, @a2 ]);
但是,当我尝试打印@b 的结果时:
sub newl { print "\n"; print "\n"; }
my $an1; my @an1;
$an1 = $#a1;
@an1 = ( 0, 1..$an1 );
for my $i (@an1) { print @b[$i]; &newl; }
我看到对数组的引用:
ARRAY(0x81c0a10)
.
ARRAY(0x81c0a50)
.
.
.
如何正确打印此数组?我知道我需要取消对数组的引用,我不知道该怎么做。我尝试这样填充我的数组:
push (@b, [ \@a1, \@a2 ]);
产生相同的结果。我也试过:
for my $i (@an1) { print @{$b[$i]}; &newl; }
不幸的是,由于将 0 作为数组引用而导致错误?
Can't use string ("0") as an ARRAY ref while "strict refs" in use at p_disk_ex6.pl line 42.
任何建议都非常感谢!