my $fn = shift @ARGS; @lines = (); open my $df, $fn or die $!; while ( $l = <$df> ) { chomp $l; unshift @lines, $l; } close $df; foreach my $l ( map{ $_ = reverse $_; $_; } @lines ) { print reverse $l, "\n"; }