perl 修道士の皆さん、
私はまだ正しく逆参照する方法について頭を悩ませています。(私は投稿する前に同様の投稿を読みましたが、残念ながらまだ概念が少し曇っています。)
次の配列があります。これは内部的に 2 つの配列で構成されています。(ところで、厳密な警告プラグマを使用しています。)
use strict; use warnings;
my @a1; my @a2;
どこ:
@a1 = ( "1MB", "2MB", ... )
と..
@a2 = ( "/home", "/home/debug", ... )
@a1 と @a2 は両方とも、51 行を含む配列です。したがって、これらを 2 番目の配列に入力します。
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.
どんな提案でも大歓迎です!