my @data = <>; my $backup=$commandfile.".bak"; foreach $com (keys %hashnew) { $ARGV[0]="$backup"; $^I=".bak"; foreach (@data) { if ($hashnew{$com} == "all") { unless (/$hashnew{$com}/../\*\ Exit\ context\ \*/) { s/$com//g; } } if (/$hashnew{$com}/../\*\ Exit\ context\ \*/) { s/$com//g; } print; } }