]> wagnertech.de Git - kivitendo-erp.git/commitdiff
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)
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

index fca3b8b2cf199164bc601ae8de9a80fc0214b3e6..8b8d859ae2c7ad060c0a23638c357e1a63f659f1 100644 (file)
@@ -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);
index 70e020fcc54c933a30c0a36dd289ad89c09a0821..0e944e9b790a02cbe77657b591fd0353340d8925 100644 (file)
@@ -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();