while (){ @my_data=; print "@my_data\n" } #### @my_data = ; #### ; # reads a line from RESULT @my_data = ; # reads rest into @my_data #### while () { chomp; my @cells = split(' ', $_); for (@cells) { s/^"(.*)"$/$1/ } ... } #### File A: ALABAMA AL ALASKA AK ARIZONA AZ ARKANSAS AR CALIFORNIA CA COLORADO CO ... File B: Alabama Montgomery Alaska Juneau Arizona Phoenix Arkansas Little Rock California Sacramento Colorado Denver Connecticut Hartford Delaware Dover Florida Tallahassee Georgia Atlanta ... #### my %data; open(A, '<', 'fileA'); while () { chomp; my @cells = split(' ', $_); $data{lc($cells[0])} = [ @cells ]; } close(A); #### open(B, '<', 'fileB'); while () { chomp; my @cells = split(' ', $_); # $cells[0] is the state name, $cells[1] is the capital my $data_from_a = $data{lc($cells[0]} || []; print join("\t", @cells, @$data_from_a), "\n"; } #### Alabama Montgomery ALABAMA AL Alaska Juneau ALASKA AK Arizona Phoenix ARIZONA AZ Arkansas Little Rock ARKANSAS AR California Sacramento CALIFORNIA CA Colorado Denver COLORADO CO ...