use strict; use warnings; use List::MoreUtils qw( first_value ); my %configHash; while() { chomp; my @fields = split(/:/, $_); my $result = qx{ /opt/bin/target -e$fields[2] }; my $id = first_value {$_->{'ntid'} eq $fields[1]} values %configHash; my $source = $id ? $id->{nbkid} : 'NONBKID'; print FILE2 "$fields[0]:$fields[1]:$result:$source\n"; }