Thread Subroutine über Variable aufrufen (4 answers)
Opened by Kean at 2013-01-05 20:14

rosti
 2013-01-05 20:39
#164670 #164670
User since
2011-03-19
3492 Artikel
BenutzerIn
[Homepage]
user image
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)

View full thread Subroutine über Variable aufrufen