perl -pe 'tr/a-zA-Z/n-za-mN-ZA-M/;'
####
#!/usr/bin/perl
use strict;
use warnings;
die "Run with argument." unless defined $ARGV[0];
my $file = $ARGV[0];
if ( $file =~ /\.enc/ ) {
decrypt( $file );
} else {
encrypt( $file );
}
exit;
sub encrypt {
my $f = shift;
my $enc = $f . '.enc';
files( $f, $enc );
}
sub decrypt {
my $f = shift;
my $dec = $f;
$dec =~ s/\.enc$/.dec/;
files( $f, $dec );
}
sub files {
my ( $in_file, $out_file ) = @_;
open my $in, '<', $in_file or die "Cannot read input file $in_file : $!\n";
open my $out, '>', $out_file or die "Cannot write to output file $out_file : $!\n";
rotate( $in, $out );
close $in;
close $out or die "Failed to complete write to output file $out_file : $!\n";
}
sub rotate {
my ( $fh_in, $fh_out ) = @_;
while ( my $text = <$fh_in> ) {
$text =~ tr/a-zA-Z/n-za-mN-ZA-M/;
print { $fh_out } $text;
}
}
####
$ perl foo foo
$ perl foo foo.enc
$ diff foo foo.dec
$