Thread &{$name} beendet block: oder hab ich ein Blackout? (12 answers)
Opened by Froschpopo at 2004-02-26 10:57

Froschpopo
 2004-02-27 15:55
#80331 #80331
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
[quote=pq,26.02.2004, 11:36]nein, ich kann das nicht bestätigen. es wäre sinnvoll, wenn du ein
(kurzes! ) beispielskript postest, das den fehler reproduziert. ich
poste nun beispielcode, der macht, was er soll:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
perl -wle'
sub test {
 print "test"
}
sub zwei {
 print "zwei"
}
$name = "test";
&{$name};
zwei();'
test
zwei

nebenbei bemerkt ist der aufruf von &{$name} nicht empfehlenswert,
da hier eine symbolische referenz benutzt wird, und das ist nicht
strict-kompatibel, und das aus gutem grund. in den meisten fällen
gibt es möglichkeiten, symbolische referenzen zu umgehen.[/quote]
Code: (dl )
1
2
3
4
   if (exists($PubVars{param('ID')})) {
update_my_session();
&{$PubVars{param('ID')}};
}


die funktion update_my_session() wird nur ausgeführt wenn ich sie VOR dem Subaufruf starte.

Aber mal eine andere Frage:
Warum ist das nicht empfehlenswert und was wäre die Alternative?

View full thread &{$name} beendet block: oder hab ich ein Blackout?