Thread Subroutine über Variable aufrufen
(4 answers)
Opened by Kean at 2013-01-05 20:14
Ein bischen weiter ausgeholt in Richtung OOP:
Jede Klasse erbt von der Klasse UNIVERSAL, da gibt es die Methode can(). Betrachte das Script: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 use strict; use warnings; my $fname = 'foo'; my $pkg = __PACKAGE__; if(my $code = $pkg->can($fname)){ $pkg->$code(1,2,3); } else{ die "No code for function '$fname'\n"; } sub foo{ print "this is sub foo in package 'main', args: @_\n"; } can() liefert eine Referenz auf den im Speicher liegenden Code, der somit ausgeführt werden kann (vorher wird geprüft). PS/Edit: Übergabe Argumente eingebaut. Last edited: 2013-01-05 20:43:06 +0100 (CET) |