Beispiel: Kryptographische Hash-Funktionen II

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

md5.pl
if (@ARGV == 0) {
   process(\*STDIN);
} else {
   foreach my $file (@ARGV) {
      my $in = new IO::File $file;
      die "$cmdname: unable to open $file: $!\n"
         unless defined $in;
      process($in, (@ARGV > 1? $file: undef));
      $in->close;
   }
}

sub process {
   my ($in, $filename) = @_;
   my $context = &{$digests{$cmdname}}();
   $context->addfile($in);
   print $filename, ": " if defined $filename;
   my $hex = $context->hexdigest;
   $hex =~ tr/a-f/A-F/;
   print $hex, "\n";
}

*\*STDIN ist ein Zeiger auf einen Type-Glob und die einzige Methode, STDIN als Parameter zu übergeben.
 
*Die Syntax des tr-Operators lehnt sich an dem s-Operator an. Die Arbeitsweise entspricht dem tr-Kommando, d.h. die Zeichen aus der geordneten ersten Menge werden durch die entsprechenden Zeichen der zweiten Menge ersetzt.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1996, 1998, 1999, 2000 Andreas Borchert, in HTML konvertiert am 07.02.2000