|
my %modules = (); sub load_modules { foreach my $dir (@INC) { next unless -d $dir; next unless my $dir = new IO::Dir "$dir/Twister"; while (defined(my $file = $dir->read)) { next unless $file =~ m{^(\w+)\.pm}; my $name = $1; my $module = "Twister::$name"; eval qq{ require $module; }; if ($@) { warn "failed to load or to register $module: $@\n"; } } } } |
load_modules() durchsucht das Twister-Verzeichnis
nach ladbaren Modulen und versucht, diese zu laden.
| |
Das eval wird aus zwei Gründen benötigt: Erstens
muß der Programmtext für das Laden zur Laufzeit
generiert werden, da erst dann der Modulname bekannt ist.
Zweitens ist es sinnvoll, nicht aufgrund eines nicht
ladbaren Moduls auseinanderzufallen.
|
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003 |