UNIVERSAL::can($package, $subname)->();
$package->can($subname)->();
2013-02-07T16:46:57 MuffiDie einzige, bei der ich danach keinen Knoten im Hirn hab:
2013-02-07T16:58:51 rostiLiest sich so, als wäre das ein Fall für AutoLoader...
2013-02-07T17:21:48 bianca2013-02-07T16:58:51 rostiLiest sich so, als wäre das ein Fall für AutoLoader...
Was genau meinst du damit?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
use strict; use warnings; my $mo = bless{}, 'main'; # einfach eine Instanz Deiner Klasse (hier: 'main'); $mo->autoload('HTTP::Headers', 'header', 'Content-Type' => 'text/plain; Charset=UTF-8'); print $mo->autoload('HTTP::Headers', 'as_string'); sub autoload{ my $self = shift; my $classname = shift; my $methodname = shift; # weitere Parameter in @_ eval("use $classname"); # Klasse zur Laufzeit einbinden die "Can't use Class '$classname', Error: $@ \n" if $@; $self->{$classname} = $classname->new() if not exists $self->{$classname}; my $code = $self->{$classname}->can($methodname); $self->{$classname}->$code(@_); }
Content-Type: text/plain; Charset=UTF-8
2013-02-07T17:01:49 MuffiAnsonsten kenn ich das Problem nicht wirklich.
2013-02-07T17:29:16 biancaWas ist hier best practice?
&{$class{name}.'::'.$func{name}}($parameter);
$class{name}->can($func{name})->($parameter);
UNIVERAL::can($class{name},$func{name})->($parameter);