1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my $pos = tell DATA; my @tmp; my @AoA; while (<DATA>) { @tmp = split; push @AoA, \@tmp; } print "wrong:\n", Dumper \@AoA; seek DATA, $pos, 0; @AoA = (); while (<DATA>) { @tmp = split; push @AoA, [@tmp]; } print "right:\n", Dumper \@AoA; __DATA__ 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
wrong: $VAR1 = [ [ '7', '8', '9' ], $VAR1->[0], $VAR1->[0] ]; right: $VAR1 = [ [ '1', '2', '3' ], [ '4', '5', '6' ], [ '7', '8', '9' ] ];