my $substitute= sub { $_; }; for () { chomp; my ($k, $v) = split(/ -- /); print "adding correction for [$k]\n"; $substitute= sub { my $r= shift; sub { s/^$k/$v/ or $r->() } }->( $substitute ); } while(<>) { chomp; $substitute->(); print $_, $/; }