From: Moritz Bunkus Date: Fri, 13 May 2011 13:35:29 +0000 (+0200) Subject: Skalarkontext erzwingen X-Git-Tag: release-2.6.3~25^2~35^2~1 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=c7771eecd629e21fc58d0a00ede0eb4b6615c715;p=kivitendo-erp.git 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. --- diff --git a/SL/Auth.pm b/SL/Auth.pm index fca3b8b2c..8b8d859ae 100644 --- a/SL/Auth.pm +++ b/SL/Auth.pm @@ -256,7 +256,7 @@ sub create_database { my $encoding = $Common::charset_to_db_encoding{$charset}; $encoding ||= 'UNICODE'; - my $dbh = SL::DBConnect->connect($dsn, $params{superuser}, $params{superuser_password}, { pg_enable_utf8 => $charset =~ m/^utf-?8$/i }); + my $dbh = SL::DBConnect->connect($dsn, $params{superuser}, $params{superuser_password}, { pg_enable_utf8 => scalar($charset =~ m/^utf-?8$/i) }); if (!$dbh) { $main::form->error($main::locale->text('The connection to the template database failed:') . "\n" . $DBI::errstr); diff --git a/bin/mozilla/oe.pl b/bin/mozilla/oe.pl index 70e020fcc..0e944e9b7 100644 --- a/bin/mozilla/oe.pl +++ b/bin/mozilla/oe.pl @@ -702,7 +702,7 @@ sub search { print $form->parse_html_template('oe/search', { %myconfig, - is_order => $form->{type} =~ /_order/, + is_order => scalar($form->{type} =~ /_order/), }); $main::lxdebug->leave_sub();