@line = map( { ord } split(//, <>) ); for(<>){ for $i (0 .. (length($_) - 2)){ next if substr($_, $i, 1) eq $"; $line[$i] += 44 - ord(substr($_, $i, 1)); } } print map( { chr } @line);