From: Moritz Bunkus Date: Mon, 1 Feb 2010 13:54:54 +0000 (+0100) Subject: Funktionsnamensauflösung gefixt X-Git-Tag: release-2.6.2beta1~251 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=f5f077a7993b74d793005e3aea6664debef07853;p=kivitendo-erp.git Funktionsnamensauflösung gefixt Hintergrund. "my $abc = ... if ..." bewirkt, dass zuerst das "if" ausgeführt wird. Schlägt das "if" fehl, so wird die Zuweisung nicht ausgeführt. Somit bleibt der Wert in $abc vom vorherigen Aufruf derselben Funktion erhalten. I hate Perl. --- diff --git a/SL/Locale.pm b/SL/Locale.pm index 28b13c696..9e74902ca 100644 --- a/SL/Locale.pm +++ b/SL/Locale.pm @@ -239,8 +239,9 @@ sub findsub { } } - my $sub_name = first { defined &{ "::$_" } } @{ $self->{texts_reverse}->{$text_rev} } if $self->{texts_reverse}->{$text_rev}; - $sub_name ||= $text_rev if ($text_rev =~ m/^[a-z][a-z0-9_]+$/) && defined &{ "::$text_rev" }; + my $sub_name; + $sub_name = first { defined(&{ "::${_}" }) } @{ $self->{texts_reverse}->{$text_rev} } if $self->{texts_reverse}->{$text_rev}; + $sub_name ||= $text_rev if ($text_rev =~ m/^[a-z][a-z0-9_]+$/) && defined &{ "::${text_rev}" }; $main::form->error("$text not defined in locale/$self->{countrycode}/all") if !$sub_name;