Hallo,
a guats neis erstmal!
In einem Skalar wird über ein Script generierter Perl Code gespeichert und in einem Hash abgelegt.
An anderer Stelle soll dann der über den Hashschlüssel ausgewählte Code ausgeführt werden. Leider klappt das nicht und ich weiß jetzt nach Stunden des Probierens, lesens und googelns nicht mehr weiter;
In dem Beispielcode funktioniert Schlüssel A nicht, O jedoch schon.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use strict;
my $A = q(my $arg = shift;print "A ";print "$arg\n";);
my $B = q(print "B\n";);
my %subs = (
A => sub { $A },
B => sub { $B },
O => sub {my $arg = shift;print "O ";print "$arg\n";}
);
for my $key (keys %subs ) {
eval &{$subs{$key}}(10) ;
}
Ausgabe:
A
Use of uninitialized value $arg in concatenation (.) or string at (eval 17)[F:\Perl-1.pl:13] line 1.
O 10
B
Last edited: 2014-01-02 21:54:23 +0100 (CET)
$q =~ /(bb|[^b]{2})/