Thread Bad name after...
(52 answers)
Opened by bianca at 2015-02-19 12:08
Ich schrieb nicht ohne Grund:
Quote Genau so eine Entwicklung habe ich befürchtet. Hier greift die String-Interpolation; wir sind schließlich beim String-eval(). Du musst Dir klar werden, welche Variable wo gültig sein soll und wann sie ausgewertet werden soll. Skalare kannst Du beispielsweise so übergeben: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 for my $ref ( @dispatch ) { my $argument = "Bla"; # etwas zum Weiterreichen an die Sub eval <<"EVAL_CODE"; package $ref->{unit}; require "$ref->{file}"; $ref->{subroutine}(\$argument); # $argument ist maskiert, weil es nicht im String interpoliert, sondern erst beim eval() ausgewertet werden soll EVAL_CODE warn "ACHTUNG: $@\n" if $@; } Ähnlich musst Du es handhaben, wenn Deine Subroutinen Werte zurückliefern und Du diese an Variablen zuweisen willst. Die aufnehmenden Variablen müssen ebenso maskiert und so vor der String-Interpolation geschützt werden. meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |