Revision f5f077a7
Von Moritz Bunkus vor fast 15 Jahren hinzugefügt
SL/Locale.pm | ||
---|---|---|
}
|
||
}
|
||
|
||
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;
|
||
|
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.