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


in reply to How to save first two columns of an array into another array

Since your data file seems to be a text file (like a csv only with whitespace as separator) you could consider using Text::CSV_XS:
#!/usr/bin/perl use strict; use warnings; use Text::CSV_XS; use Data::Dumper; my $param = { binary => 1, auto_diag => 1, sep_char => ' ', eol => $/, }; my %hash; my $csv = Text::CSV_XS->new ( $param ); while ( my $row = $csv->getline( *DATA ) ) { print "@$row[0,1]\n"; # or whatever. $hash{$row->[0]} = $row->[1]; # read into a hash. } print Dumper \%hash; __END__ b c a a c d d e b
Output of a Data::Dumper print statement is:
$VAR1 = { 'a' => 'c', 'b' => 'c', 'd' => 'e' };

Update: Typo corrected.