while () { $alldata .= $_ ; if(/(\S+)\s+(\d+)/) { $mylist{$1} = {value => $2, linenum => $. }; } } #### for my $key ( keys %mylist ) { my $value = $mylist{$key}{value}; my $linenum = $mylist{$key}{linenum}; print "$key has value $value, found on line $linenum\n"; }