Skalarkontext erzwingen
authorMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 13 May 2011 13:35:29 +0000 (15:35 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 13 May 2011 13:35:29 +0000 (15:35 +0200)
commitc7771eecd629e21fc58d0a00ede0eb4b6615c715
tree33004a9f21e86c5a2464684c4cb366de1bfd1ac1
parent6fb7bcc9f1e00bc068a4514a3c7fa599119e6e06
Skalarkontext erzwingen

Regex-Matches geben im Listenkontext eine leere Liste zurück. Perl
optimiert leere Listen innerhalb von Listen komplett weg. Somit hat
folgendes Hash nur einen Key und einen Value, nämlich "a" und "123"
respektive:

my %h = (  a => $unicorn =~ /Charlie/,
         123 => $cat     =~ /mat/);

Die hier geänderten Stellen funktionieren nur deshalb korrekt, weil es
jeweils nur einen Regex-Match im Hash gibt und dieser ganz am Ende
steht. Da die Values dazu im booleschen Kontext genutzt werden und
nicht existierende Hash-Values schlicht undef sind, funktioniert es so
lange, bis jemand einen Eintrag hinzufügt. Also vorsichtshalber gleich
Skalarkontext erzwingen.
SL/Auth.pm
bin/mozilla/oe.pl