Implementierung mit Selbst-Registrierung

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

Twister/Rotate.pm
package Twister::Rotate;

use Twister;
require Exporter;
our @ISA = qw(Twister);

sub defaults {
   return {rotate => 13};
}

sub twist {
   my ($self, $string) = @_;

   $string =~ s{([a-z])}{
      chr(ord('a') +
         (ord($1) - ord('a') + $self->{rotate}) % 26)
   }eg;
   $string =~ s{([A-Z])}{
      chr(ord('A') +
         (ord($1) - ord('A') + $self->{rotate}) % 26)
   }eg;
   return $string;
}

Twister::Rotate->register("Rotate", sub {
   Twister::Rotate->new(@_)
});

1;

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003