Thread Symbolische Referenz trotz strict
(4 answers)
Opened by Coder at 2009-08-27 13:02
ja.
aber es ist nichts verwerfliches daran, es mit no strict zu machen, vorausgesetzt, du schaltest es nur in einem kleinen bereich ab, also Code (perl): (dl
)
1 2 3 4 5 6 7 8 use strict; ... { # hier mach ich was "boeses" no strict 'refs'; &{ $subname }; } # hier ist wieder alles ganz strict alternativ: Code (perl): (dl
)
main->can($subname)->(); # bzw. statt main auch ein anderes package je nachdem, wo der subname herkommt, solltest du natürlich noch ein bisschen validieren. generell kann man hier immer eine dispatch-table empfehlen, da kannst du wenig falsch machen: Code (perl): (dl
)
1 2 3 4 5 6 my %table = ( foo => \&foo, bar => \&bar, ... ); $table{ $subname }->(); # call Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wie frage ich & perlintro brian's Leitfaden für jedes Perl-Problem |