|
PHP Function call_user_func for PERL
Testen.pm package Testen; use strict; use warnings; sub new() { my ($class) = shift; my $self = { }; $self->{user_function} = undef; bless ($self, $class); return ($self); } sub call_user_function { my ($self) = @_; my $functionname = $self->{user_function}; my $functionnameasref = \&$functionname; &$functionnameasref("Called from PM $functionname.\n"); } sub do_something { my ($self) = @_; if (defined($self->{user_function})) { $self->call_user_function(); } else { print "no user function - do something else\n" }; } 1; test.pl use strict; use warnings; require "Testen.pm"; package Testen; my $share = new Testen(); sub newfunction($) # my user function { my $text = shift; die if !defined($text); print "newfunction from PL -> $text\n"; } $share->do_something; # do nothing - no function set $share->{user_function} = "newfunction"; # set name of function $share->do_something; # do something # bla bla bla # do something exit; OUTPUT, so wie erwartet - test.pl: no user function - do something else newfunction from PL -> Called from PM newfunction.
Vielen Dank noch mal an Herrn Schmalhofer.
|