Guest User

Untitled

a guest
Feb 21st, 2016
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 6 0.73 KB | None | 0 0
  1. use v6;
  2.  
  3. my @alphabet = 'A' .. 'Z';
  4.  
  5. multi sub MAIN(Str $mode, Int $n, Str $filename) {
  6.   given $mode {
  7.     when $_ eq 'enc' {
  8.       my $message = prepare(slurp($filename));
  9.       my $encrypt = encrypt($n, $message);
  10.       say $encrypt;
  11.     }
  12.     when $_ eq 'dec' {
  13.       my $message = slurp($filename);
  14.       my $decrypt = decrypt($n, $message);
  15.       say $decrypt;
  16.     }
  17.     default {
  18.       say 'Invalid !';
  19.     }
  20.   }
  21. }
  22.  
  23. multi sub prepare(Str $message) {
  24.   return $message.subst(/<-:L>+/,'',:g).uc;
  25. }
  26.  
  27. multi sub encrypt ($key where 1..25, $message) {
  28.   $message.trans(@alphabet Z=> @alphabet.rotate($key));
  29. }
  30.  
  31. multi sub decrypt ($key where 1..25, $message) {
  32.   $message.trans(@alphabet.rotate($key) Z=> @alphabet);
  33. }
Advertisement
Add Comment
Please, Sign In to add comment