NICHT MEHR LIEFERBAR
Perl Kochbuch

Tom Christansen & Nathan Torkington
Deutsche Übersetzung von Peter Klicman & Eike Grote
1. Auflage April 1999
ISBN 978-3-89721-140-7
836 Seiten
Englischsprachige Ausgabe:

Dieser Titel ist vergriffen und nicht mehr lieferbar!



Weitere Informationen zu diesem Buch

Errata | Grußwort | Beispielskripten per FTP |


Errata

	

Hinweis: Die erste Zahl bezeichnet die Seite, die zweite Zahl den Absatz, die dritte Zahl die Zeile.

2. Nachdruck, März 2000

5.2.1 Komma nach "m//" weg 58 erstes Code-Bsp., 9. Zeile: 1 ); am Zeilenende wird ersetzt durch 1 || $w == 0); 85 erstes Code-Bsp., 3. Zeile: ; am Zeilenende wird zu ); 132 zweites Code-Bsp., 2. Zeile: Zeile beginnt auf gleicher Höhe wie Zeile davor 170 erstes Code-Bsp., ersetzt duch: % echo longest | perl -ne 'print "$&\n" if / (long|longer|longest)+/' long 170 zweites Code-Bsp., ersetzt durch: $ echo longest | awk 'match($0, /(long|longer|longest)+/)\ { print substr($0, RSTART, RLENGTH) } ' longest 203.3.-2 zwischen "mit" und "effizient" ein zweites Leerzeichen einfügen 211.3.3 "/" nach "(?=^.*?bell)(?=^.*?lab)" streichen 229. Code in der drittletzten Zeile m/(\w+)\s*=\s*(.*)\s*$/ wird zu m/(\w+)\s*=\s*(.*?)\s*$/ 230 im Code unter "IP-Adresse" in der ersten und der zweiten Zeile: jeweils zweimal pro Zeile ([ ersetzen durch ( \d | [ Code ist jetzt: m{ ^ ( \d | [01]?\d\d | 2[0-4]\d | 25[0-5] ) \. ( \d | [01]?\d\d | 2[0-4]\d | 25[0-5] ) \. ( \d | [01]?\d\d | 2[0-4]\d | 25[0-5] ) \. ( \d | [01]?\d\d | 2[0-4]\d | 25[0-5] ) $ }x 299 im zweiten Code-Bsp., zweite Zeile wird zu: @ARGV = ('/usr/share/games/fortune') unless @ARGV; 312 im ersten Code-Bsp., in der 4. Zeile wird file eingefügt zwischen $0 und adr 321 im ersten Code-Bsp., in der 11. Zeile: usage tee wird zu usage $0 im gleichen Code, in der 20.Zeile wird } um 4 Zeichen nach links verschoben 332. im dritten Code-Bsp., 4. Zeile: move("datafile.new", "datafile.dat") wird zu move("datafile.dat", "datafile.new") 341 im zweiten Code-Bsp. (9-4) wird die 5. Zeile 4 Zeichen nach links verschoben (dann wie 4. Zeile) 388 in Abbildung 11-3 werden die beiden letzten Zeilen zu: print "$$a\n"; 3 412.2.4. Poker::Deck::shuffle(23) wird zu Cards::Poker::shuffle(23) 468.7.3ff der Schluß des Abschnitts ab "und die Objektmethoden, ..." wird ersetzt durch "es ist oft nützlich, Objektmethoden zu verwenden, die selbst neue Objekte zurückliefern, wie Sie in Rezept 13.6 sehen können." 471.7.-3ff der Schluß des Abschnitts ab "auf ein Objekt, (das ..." wird ersetzt durch "auf ein Objekt oder eine Objektmethode (die eine Referenz erwartet) auf eine Klasse anwenden, sollten in dem Fall aber keine vernünftigen Ergebnisse erwarten." 484. im zweiten Code-Bsp. werden geschweifte Klammern eingefügt: struct Card => map { $_ => '$' } qw(name color cost type release text); wird zu: struct Card => { map { $_ => '$' } qw(name color cost type release text) }; 488.1.1 $obj2 wird zu $obj_target 503. im ersten Code-Bsp., in der zweitletzten Zeile O wird ersetzt durch RotSchwarzRotSchwarzRotSchwarz 504. in ersten Code-Bsp., (13-1) in Zeile 16 und 21 werden Klammern eingefügt return StrNum $inverted ? ($s2 . $s1) : ($s1 . $s2); wird zu: return StrNum($inverted ? ($s2 . $s1) : ($s1 . $s2)); und return StrNum $inverted ? ($s2 x $s1) : ($s1 x $s2); wird zu: return StrNum($inverted ? ($s2 x $s1) : ($s1 x $s2)); 520 im zweiten Code-Bsp., in der letzten Zeile: %hash; wird zu %HASH; 522 im zweiten Code-Bsp., in der letzten Zeile: %hash; wird zu %HASH; 545 im zweiten Code-Bsp., in der letzten Zeile: # --output=string wird zu: # --output string 611 im zweiten Code-Bsp., die zweite Zeile print _POSIX_PIPE_BUF wird zu: print PIPE_BUF. 639.-1.1+2 Die ersten eineinhalb Zeilen (bis "... IP-Adresse beschränken,") werden ersetzt durch "Haben Sie mehrere Netzwerkschnittstellen, wird basierend auf dem aktuellen Routing vom Kernel die zu verwendende ausgewählt. Wenn Sie diese Voreinstellung ändern wollen," 689 im zweiten Code-Bsp. werden zwei geschweifte Klammern eingefügt und die ' vor den => gestrichen: $mailer->open( 'From' => 'Nathan Torkington ', 'To' => 'Tom Chritiansen ', 'Subject' => 'The Perl Cookbook' ); wird zu: $mailer->open( { From => 'Nathan Torkington ', To => 'Tom Chritiansen ', Subject => 'The Perl Cookbook' } ); 724. erstes Code-Bsp., das Ende der zweiten Zeile: "|-")); wird zu "-|")); 724. im letzten Code-Bsp., wird die erste Zeile gestrichen und das Ende der dritten Zeile: "|-")); wird zu "-|")); 773.3.2 "index.html" wird ersetzt durch "scooby.html"

1. Nachdruck, Oktober 1999

Impressum    in 1. Zeile löschen: "und die CD-ROM"

xxxiv.-1.-1  Punkt ergänzen: "herunterladen." 

2.3.4        "Die Zahlen 0, 0.00" wird zu "Die Zahlen 0., 0.00"

5.2.1        "zusammen mit den Operatoren s///, m//, oder tr/// verwenden"
             wird zu "und die Operatoren s///, m// oder tr/// zusammen mit
             substr verwenden"

10.1.1       "perlop" wird zu "perldata"

18.          1. Code-Bsp.: # Einfaches Quoting   wird zu  # Wie einfaches 
             Quoting

21.4.1       "Sie können auch verwendet werden" wird zu "Sie können auch ihre
             funktionalen Formen verwenden"

31.          letztes Code-Bsp.: Zeilen -4 bis -7 um 4 Zeichen nach links 
             verschieben

32.4.3       letzter Satz muß lauten: "Wir entfernen führende und anhängende 
             Whitespaces in der getnum-Funktion in Rezept 1.1." (Rest des 
             Satzes streichen)

33.2.3       Code: quoteword   wird zu   quotewords

35.          Tabelle, 3. Zeile: "lorrie" wird zu "lorry"

39.          5. Codezeile:  s   wird zu   %

53.2.1       "das $x..$y" wird zu "das $X .. $Y"

56.-1.1      "perlfunc(1) und in Kapitel" wird zu "perlfunc(1); Kapitel"

67.-1.-2     "Perl; sysopen wird in Rezept 7.1 behandelt." wird zu "Perl."

69.          1. Code-Bsp.:   
                            $time == 1 ? ""   : "n" ;
                            $time == 1 ? "ist" : "sind" ;
             ersetzen durch 
                            $time == 1 ? ""    : "n" ,
                            $time == 1 ? "ist" : "sind" ;

71.2.1       "Primzahlen" wird zu "Integerzahlen"

71.          letztes Code-Bsp., vorletzt Zeile:

                      my ($n, $root, %factors, $factor);
             wird zu 
                      my($n, %factors, $factor);

72.          1. Code-Bsp., 2. Zeile: "bignum" wird zu "bigfact"

74.          Fußnote: URL lautet jetzt:
             http://sciastro.astronomy.net/sci.astro.3.FAQ

79.          in ersten beiden Code-Beispielen jeweils in 2. Zeile ersetzen:
             $TIME durch $time (insg. 3 x)

81.-1.1      "DMYMHS" ersetzten durch "DMYHMS"

82.-3.2      "gibt den Unterschied in Tagen" wird zu 
             "gibt die Anzahl von Tagen"

82.          letztes Code-Bsp., letzte zwei Zeilen: jeweils "Bree" und "Nat"
             austauschen ("Bree" wird zu "Nat", "Nat" wird zu "Bree")

88.          1. Code-Bsp., letzte Zeile:

                     # Sekunden zwischen  $t1 und $t2  repräsentiert
             wird zu
                     # Sekunden zwischen  $t0 und $t1  repräsentiert

88.          letztes Code-Bsp., 8. Zeile:

                     syscall(&SYS_gettimeofday, $start, 0)) != -1
             wird zu 
                     syscall(&SYS_gettimeofday, $start, 0) != -1

90.4.1       "Time::HiRes" wird zu "Das Modul Time::HiRes"

99.          letztes Code-Bsp., 3. Zeile:

                     print "Ich habe @array Murmeln\n.";
             wird zu 
                     print "Ich habe @array Murmeln.\n";

102.-3.1     "Der Eintrag $#ARRAY in" wird zu 
             "Die Besprechung der $#ARRAY-Schreibweise in"

105.         2. Code-Bsp., 5. Zeile: 
             print "@array";   wird zu   print @array\n";

105.         2. Code-Bsp., 9.-12. Zeile: 

                     foreach $item (@a, @b) {
                         $item *= 7;
                         print "$item ";
                     }
             wird zu 
                     foreach $item (@a, @b) {
                         $item *= 7;
                     }
                     print "@a @b\n";

108.         letztes Code-Bsp., 2. Zeile: @unique   wird zu   @uniq

113.-3       Letzter Satz wird geändert zu: 
             "Die Elemente der Ausgabearrays liegen nicht in der gleichen 
             Reihenfolge vor wie die Elemente der Eingabearrays."

120.         1. Code-Bsp.:    

                     @MATCHING = ();
                     foreach (@LIST) {
                         push (@MATCHING, $_) if TEST ($_);
 
             wird zu  
                     @matching = ();
                     foreach (@list) {
                         push (@matching, $_) if TEST ($_);

121.         1. Code-Bsp.:

                      @Sorted = sort { $a <=> $b } Unsorted;
             wird zu 
                      @sorted = sort { $a <=> $b } @unsorted;

121.3.2      "Vergleichsroutine" wird zu "Vergleichs-Subroutine"

126.5        "das temporäre Array" wird zu "die temporären Arrays"

130.-2.2     "die längste vorkommende Zeile" wird ersetzt durch "die Länge der 
             längsten vorkommenden Zeile"

130.-2.3     "den längsten gefundenen Datensatz" wird ersetzt durch "die Länge 
             des längsten gefundenen Datensatzes"

134.         Code-Bsp., Zeile -4:  "S Objekten" wird zu "$len Objekten"

137.4.2      "Closures im Abschnitt 'Private Variables via my()' von 
             perlsub(1)" wird zu "Closures in perlsub(1)"

152.         letztes Code-Bsp.: 

               foreach $food (sort { $food_color{$a} cmp $food_color{$b} } )
                   keys %food_color) {
                       print "$food is $food_color{$food}.\n";
               }

             wird zu 

               foreach $food (sort { $food_color{$a} cmp $food_color{$b} }
                              keys %food_color)
               {
                   print "$food ist $food_color{$food}.\n";
               }

153.-2-2     "%MERGED" wird zu "%merged"

153.         letzte Code-Zeile: 
                   "%ingested_colors" ersetzen durch "%ingested_color"

156.2.1      "Die Erläuterung von Hash Slices in perldata(1) und den 
             Abschnitt" ersetzen durch "Den Abschnitt"

156.         letztes Code-Bsp., letzte Zeile: "%HASH" ersetzen durch "%hash"

161.         2. Code-Bsp., 8. Zeile:

                      next unless /^\s*#\s+include\s+<([^>]+)>/;

             wird zu 

                      next unless /^\s*#\s*include\s*<([^>]+)>/;

161.4.1      "Hier werden alle Dateien ausgegeben, die keine anderen einbinden:" 
             wird ersetzt durch 
             "Hier werden alle Dateien ohne include-Anweisungen ausgegeben, 
             die nicht in anderen Dateien eingebunden sind:"

161.-1.1     "cookbook" wird ersetzt durch "pcb"

162.-2.-2    "no" wird zu "not"  

164.-3.1     folgenden Satzteil löschen:
             "eine Referenz auf ein anonymes Array mit den Werten"

164.-3.-1    "pcb/rev/no" wird zu "pcb/rev/not"

165.         Code-Bsp., Zeile 13:    i}   wird zu   }

238.         letztes Code-Bsp., Zeile 3:

                      $sink = IO::File->new("> $filename")
             wird zu 
                      $fh = IO::File->new("> $filename")

238.         letztes Code-Bsp., Zeile 7: "Leserechten" wird zu "Schreibrechten"

250.1.-1     "Rezept 16.15" wird zu "Rezept 16.6"

300.         Code-Bsp. unten, Zeile 5:

                      @reordered = shuffle(@lines);
             wird zu 
                      fisher_yates_shuffle(\@lines);

302.        letztes Code-Bsp., Zeile 3:

            $tie = tie(@lines, $FILE, O_RDWR, 0666, $DB_RECNO) or die

            wird zu 

            $tie = tie(@lines, "DB_File", $FILE, O_RDWR, 0666, $DB_RECNO) or die

339.         letztes Code-Bsp., Zeile 5:

                      return if defined $age && $age > -M;
             wird zu 
                      return if defined $age && $age > (stat($_))[9];

340.1.-1     "eher" streichen

359.1.-2     "viele ineinander verschachtelte Subroutinenaufrufe Sie" wird zu
             "viele Frames (ineinander verschachtelte Subroutinenaufrufe) Sie"

370.4.2      "wurde" ersetzen durch "wird"

391.         vorletztes Code-Bsp.: 

                      $sliceref = \@{$pie}[3..5];     # FALSCH!
             wird zu 
                      $sliceref = \@{$kuchen}[3..5];  # FALSCH!

393.         unter "Siehe auch", Zeile 2: 

                      das Beispiel "Erstelle
             wird zu
                      "Tie-Beispiel: Erstelle 

406.         zweites Code-Bsp., 3. Zeile:

                      my @felder = { split /^([^:]+):\s*/m };
             wird zu 
                      my @felder = split /^([^:]+):\s*/m;

406.         ebenfalls zweites Code-Bsp., 5. Zeile:

                      push(@Array_von_Records, { @felder });
             wird zu
                      push(@Array_von_Records, { map /(.*)/, @fields });

414.         erstes Code-Bsp., Zeile 6:

                  while ($n++ < 20) { einfuegen($wurzel, int(rand(1000)) }
             wird zu 
                  while ($n++ < 20) { einfuegen($wurzel, int(rand(1000))) }

470.         zweites Code-Bsp., 2. Und 3. Zeile: 
             2 x "$object" ersetzen durch "$lector"

486.         zweites Code-Bsp., 7. Zeile: 

                      if (@ISA && $proto->SUPER::can('new') {
             wird zu 
                      if (@ISA && $proto->SUPER::can('new')) {

504.1.1               sub StrNum($) {
             wird zu
                      sub StrNum {

511.         zweites Code-Bsp., 9. Zeile: 

                      push @{$self->{key}}, $value;
             wird zu 
                      push @{$self->{$key}}, $value;

520.         in Code-Bsp. (Zeilen 4, 5, 6, 9, und -2, -5, -6, -7)
             8 x "KEY" durch "$KEY" ersetzen

525.-3.1     "GDBM" durch "NDBM" ersetzen

524.         im Code-Bsp. folgenden Zeile nach Zeile 9 einfügen 
             (auf selber Höhe wie chop-Zeile):

                      next unless defined $href && defined $binary_time;

549.         unter "Siehe auch", 2. Zeile: 
             "Kapitel 3" durch "Kapitel 2" ersetzen

589.         im Code (Zeile 1 und 6) 2 x jeweils ein Leerzeichen einfügen:

                      programmargumente 
             wird zu 
                      programm argumente 

590.         2. Code-Bsp., 1. Zeile: gleiche Korrektur wie auf Seite 589

638.         letztes Code-Bsp., 3. Zeile:

             socket(SERVER, PF_INET, SOCK_STREAM, getprotobyname('tcp'));

             wird zu 

             socket(TO_SERVER, PF_INET, SOCK_STREAM, getprotobyname('tcp'));

642.         letztes Code-Bsp., Zeile 2 und 4: 
             "$SERVER" wird jeweils zu "SERVER"

642.-1.-2    der URL lautet richtig:
	       http://www.ecst.csuchico.edu/~beej/guide/net

665.         Code, Zeile 15 und 16:

                       if ($rv == length $outbuffer{$client} ||
                           {$! == POSIX::EWOULDBLOCK) {
             wird zu 
                       if ($rv == length $outbuffer{$client} ||
                           $!  == POSIX::EWOULDBLOCK) {

687.         Code, Zeile 2:

                       $mailer = Mail::Mailer->new();
             wird zu
                       $mailer = Mail::Mailer->new("sendmail");

761.         Code, Zeile -9:

                       my($anf, $ant);
             wird zu 
                       my($ant);
	

Zurück zu Perl Kochbuch


Themen

Buchreihen

Special Interest

International Sites

O'Reilly China O'Reilly USA O'Reilly Japan O'Reilly Taiwan