Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision c7771eec

Von Moritz Bunkus vor mehr als 13 Jahren hinzugefügt

  • ID c7771eecd629e21fc58d0a00ede0eb4b6615c715
  • Vorgänger 6fb7bcc9
  • Nachfolger 27ae8657

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.

Unterschiede anzeigen:

SL/Auth.pm
256 256
  my $encoding   = $Common::charset_to_db_encoding{$charset};
257 257
  $encoding    ||= 'UNICODE';
258 258

  
259
  my $dbh        = SL::DBConnect->connect($dsn, $params{superuser}, $params{superuser_password}, { pg_enable_utf8 => $charset =~ m/^utf-?8$/i });
259
  my $dbh        = SL::DBConnect->connect($dsn, $params{superuser}, $params{superuser_password}, { pg_enable_utf8 => scalar($charset =~ m/^utf-?8$/i) });
260 260

  
261 261
  if (!$dbh) {
262 262
    $main::form->error($main::locale->text('The connection to the template database failed:') . "\n" . $DBI::errstr);

Auch abrufbar als: Unified diff