Yuhuu

Posts mit dem Label Scripting werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Scripting werden angezeigt. Alle Posts anzeigen

Dienstag, 2. März 2010

PERL call_user_func


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.