From c7771eecd629e21fc58d0a00ede0eb4b6615c715 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Fri, 13 May 2011 15:35:29 +0200 Subject: [PATCH] Skalarkontext erzwingen MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 | 2 +- bin/mozilla/oe.pl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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(); -- 2.20.1