Thread Subroutine & Arrays: Funktion zur Arrayerzeugung
(11 answers)
Opened by Kristop8 at 2005-10-17 15:57
1. was kommen denn fuer fehler, wenn du die $directory-Zeilen nicht auskommentierst? Ohne Fehlermeldung ist es ziemlich schwer, dir zu helfen.
2. $directory =~ s!\\!/!g; ersetzt in $directory alle \ durch / 3. $directory =~ s!/$!!; ersetzt am Ende ($) von Directory den / durch nichts, also wirft den Slash am Ende weg (esskar verwendet anstelle des "ueblichen" Separators fuer regulaere Ausdruecke / einfach ! , damit er den / im Ersetzungsteil nicht escapen muss. aber da koennte genausogut $directory =~ s/\/$//; stehen. 4. opendir (DIR, $dir) ... geht natuerlich; allerdings kann man z.B. DIR nur unschoen an Subroutinen uebergeben. Bei neueren Perl-Versionen (ich glaube, ab perl5) kann man anstelle des FH-Globs auch eine ganz normale variable verwenden, also opendir($dir, $directory); und da $dir das erste Mal vorkommt, deklariert sie esskar gleich mit my. 5. push @{$arrayref}, $path; da hast du recht Mal eine Frage: wieso willst du die Dateien in separaten Arrays haben? da bekommst du probleme mit der erweiterbarkeit deines scriptes (wenn ein neues verzeichnis hinzukommt, musst du ein neues array erstellen, oder mit mehrdimensionalen Arrays arbeiten; aber auch dort musst du dir vermutlich merken, von wo die Dateien kommen). Ist es nicht einfacher, alleDateiname inkl. Pfad in einem grossen Array zu speichern und dann damit zu arbeiten? Wenn du sowas willst, hilft dir vielleicht das Modul File::Find weiter, z.B. Code: (dl
)
1 #! /usr/bin/perl Lesematerial: perldoc File::Find perldoc -f -f (einfach in die Shell eingeben, und abwarten, was passiert)\n\n <!--EDIT|Strat|1129563413--> perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/ |