[Dresden-pm] Destruktoren
Torsten Werner
email at twerner42.de
Don Jul 24 14:40:49 CDT 2003
Hallo Leute,
mal eine Frage: Arbeiten in perl die Destruktoren etwa so wie in C++?
Ein Beispiel:
sub read_files (@) {
use IO::File;
my @result;
for(@_) {
my $handle = new IO::File $_ or next;
push @result, $handle->getlines;
}
return @result;
}
Kann ich davon ausgehen, dass am Ende der Funktion alle Dateien wieder
ordentlich geschlossen wurden? Das ganze ist übrigens eine nette
Variante des <>-Konstrukts und geht natürlich auch nur mit einer Datei:
my @fstab = read_files '/etc/fstab';
my ($root_disk) = map { m{(^/dev/[hs]d[a-z])\d\s+/\s+} } @fstab;
print $root_disk;
Im Gegensatz zu <> kann man die Dateien beliebig oft im Programm ändern:
print read_files glob '*.pl';
und das geht natürlich auch mit Kommandos:
print read_files qw(pwd| hostname| w| ls|);
Torsten
--
Torsten Werner +49 162 3123004
email at twerner42.de http://www.twerner42.de