my %translate = ( '0 0' => -1, '0 1' => -1, '0 2' => -1, '1 0' => -1, '1 1' => 0, '1 2' => 1, '2 0' => -1, '2 1' => 1, '2 2' => 2, ); while (<$fh>) { s/(\d \d)/$translate{$1}/g; print "New line: $_"; }