#!/usr/bin/perl use strict; use warnings; my @lines; while(<>){ push @lines, $_; } while(@lines){ print flip_line(pop @lines); } sub flip_line {rev_string(join '', map flip_char($_), split //, shift)} sub rev_string {scalar reverse shift} sub flip_char {$_= lc shift; tr/'ahbbmfnnjpdrvutwqgye'/'eyqgwtuvrdpjnnfmbbha'/; $_}