backscratcher

 

rot13

Page history last edited by tbarron 1 yr ago

rot13


#!/usr/bin/perl

$c = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

while ($line = <STDIN>)
{
   chomp($line);
   $oline = "";
   for ($idx = 0 ; $idx < length($line) ; $idx++)
   {
      $b = rot13(substr($line, $idx, 1));
      $oline .= $b;
   }
   printf("%sn", $oline);
}

# ===========================================================================
sub rot13
{
   my ($byte);

   ($byte) = @_;
   
   $o = ord($byte);
   $a = ord('a');
   $z = ord('z');
   $A = ord('A');
   $Z = ord('Z');

   if (($a <= $o) && ($o <= $z))
   {
      $r = chr($a + (($o - $a + 13) % 26));
   }
   elsif ((ord('A') <= $o) && ($o <= ord('Z')))
   {
      $r = chr($a + (($o - $a + 13) % 26));
   }
   else
   {
      $r = $byte;
   }

   return($r);
}

Comments (0)

You don't have permission to comment on this page.