Revision f5f077a7
Von Moritz Bunkus vor mehr als 14 Jahren hinzugefügt
SL/Locale.pm | ||
---|---|---|
239 | 239 |
} |
240 | 240 |
} |
241 | 241 |
|
242 |
my $sub_name = first { defined &{ "::$_" } } @{ $self->{texts_reverse}->{$text_rev} } if $self->{texts_reverse}->{$text_rev}; |
|
243 |
$sub_name ||= $text_rev if ($text_rev =~ m/^[a-z][a-z0-9_]+$/) && defined &{ "::$text_rev" }; |
|
242 |
my $sub_name; |
|
243 |
$sub_name = first { defined(&{ "::${_}" }) } @{ $self->{texts_reverse}->{$text_rev} } if $self->{texts_reverse}->{$text_rev}; |
|
244 |
$sub_name ||= $text_rev if ($text_rev =~ m/^[a-z][a-z0-9_]+$/) && defined &{ "::${text_rev}" }; |
|
244 | 245 |
|
245 | 246 |
$main::form->error("$text not defined in locale/$self->{countrycode}/all") if !$sub_name; |
246 | 247 |
|
Auch abrufbar als: Unified diff
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.