#!/usr/bin/env perl
use strict;
use warnings;
my $arrays = [];
my $count = 0;
my $row = 0;
# Read data and store in $arrays
while(<DATA>) {
if (my ($letters) = m/^(\w+)\s*$/) {
# Store letters
$arrays->[$count]->[$row] = [ split //, $letters ];
$row++;
} else {
# Next batch
$count++;
$row = 0;
}
}
# Print it out with indices
for my $iarray (0 .. $count) {
print "------ Matrix $iarray ------\n";
my @rows = @{ $arrays->[$iarray] };
for my $irow (0 .. $#rows) {
my @cols = @{ $rows[$irow] };
for my $icol (0 .. $#cols) {
print "($irow,$icol) -> " . $cols[$icol] . "\n";
}
}
}
__DATA__
ABCD
EFGH
IJKL
MNOP
QRST
UVWX
出力
------ Matrix 0 ------
(0,0) -> A
(0,1) -> B
(0,2) -> C
(0,3) -> D
(1,0) -> E
(1,1) -> F
(1,2) -> G
(1,3) -> H
(2,0) -> I
(2,1) -> J
(2,2) -> K
(2,3) -> L
------ Matrix 1 ------
(0,0) -> M
(0,1) -> N
(0,2) -> O
(0,3) -> P
(1,0) -> Q
(1,1) -> R
(1,2) -> S
(1,3) -> T
(2,0) -> U
(2,1) -> V
(2,2) -> W
(2,3) -> X
これはパズルですか?どのような計数システムが指標「(2,4)」と「N」と「(1,0)」を持つ「K」を持っていますか?説明できますか?しかし、まず、あなたがしたこと、そしてあなたがその問題を持っていることを私たちに示すことができますか?ここの質問は、あなたのコードについてのものであると予想されます。 – zdim
@zdim私の間違い!ちょうどそれらを修正し、コードを追加しました。 –
これは良いことですが、ありがとうございます(まだ、私はあなたが 'a [2] [2] == K' ...を意味すると思います)。コードについては、データ構造にそれぞれの_references_を持たせて多次元構造を作成します。スロット。参考文献:チュートリアル[perlreftut](http://perldoc.perl.org/perlreftut.html)、料理レッスン[perldsc](http://perldoc.perl.org/perldsc.html)。あなたは 'pelrdsc'の配列の配列を必要とします – zdim