use strict; use warnings; my $file2 =<; # Skip headings while (my $line = ) { chomp $line; my @fields = split m{,\s*}, $line; if (exists $desc{$fields[1]}) { print join(', ', @fields, $desc{$fields[1]}), "\n"; } } __DATA__ Testname, code, date, file Test1, 4, 4/11/15, /tmp Test2, 2, 4/11/15, /log Test3, 1, 4/11/15, /log Test4, 7, 4/11/15, /dat Test5, 4, 4/11/15, /log