Beispiel für eine Abstraktion mit integrierter Fabrik II

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

twist.pl
#!/usr/local/bin/perl

use strict;
use warnings;
use Twister;

my $cmdname = $0; $cmdname =~ s{.*/}{};
my @twisters = ();
while (@ARGV > 0) {
   my $module = shift; my %options = ();
   while (@ARGV > 0 && $ARGV[0] =~ m{^(\w+)=(.*)}) {
      $options{$1} = $2; shift;
   }
   my $twister = Twister->create($module, %options);
   die "$cmdname: unknown twister: $module\n"
      unless defined $twister;
   push(@twisters, $twister);
}

while (<>) {
   my $string = $_;
   foreach my $twister (@twisters) {
      $string = $twister->twist($string);
   }
   print $string;
}

*Die Kommandozeile besteht aus Modulnamen und zugehörigen Optionen. Dies wird in eine Liste entsprechender Objekte konvertiert.
 

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