http://www.perlmonks.org?node_id=11113413


in reply to reading input into a number of arrays

A simpler way to populate your AoA avoiding C-style loops.

use strict; use warnings; use Data::Dumper; open my $inFH, q{<}, \ <<__EOD__ or die $!; 1111111 2222222 3333333 __EOD__ my @AoA; my $x = 0; while ( <$inFH> ) { chomp; $AoA[ $x ++ ] = [ undef, split m{} ]; } close $inFH or die $!; print Data::Dumper->Dumpxs( [ \ @AoA ], [ qw{ *AoA } ] );

The output.

@AoA = ( [ undef, '1', '1', '1', '1', '1', '1', '1' ], [ undef, '2', '2', '2', '2', '2', '2', '2' ], [ undef, '3', '3', '3', '3', '3', '3', '3' ] );

I hope this is useful.

Update: Even simpler would be to use push and avoid the counter entirely.

use strict; use warnings; use Data::Dumper; open my $inFH, q{<}, \ <<__EOD__ or die $!; 1111111 2222222 3333333 __EOD__ my @AoA; while ( <$inFH> ) { chomp; push @AoA, [ undef, split m{} ]; } close $inFH or die $!; print Data::Dumper->Dumpxs( [ \ @AoA ], [ qw{ *AoA } ] );

Cheers,

JohnGG