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 } ] );