Locale-Objekte pro Sprache cachen
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 1 Feb 2010 13:23:01 +0000 (14:23 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Tue, 20 Jul 2010 11:24:31 +0000 (13:24 +0200)
Damit braucht die FastCGI-basierte Variante locale/de/all nicht bei
jedem Aufruf neu einzulesen.

SL/Locale.pm

index 9e74902..172155e 100644 (file)
@@ -47,6 +47,8 @@ use SL::Inifile;
 
 use strict;
 
+my %locales_by_country;
+
 sub new {
   $main::lxdebug->enter_sub();
 
@@ -56,14 +58,18 @@ sub new {
   $country   =~ s|.*/||;
   $country   =~ s|\.||g;
 
-  my $self = {};
-  bless $self, $type;
+  if (!$locales_by_country{$country}) {
+    my $self = {};
+    bless $self, $type;
+
+    $self->_init($country);
 
-  $self->_init($country);
+    $locales_by_country{$country} = $self;
+  }
 
   $main::lxdebug->leave_sub();
 
-  return $self;
+  return $locales_by_country{$country}
 }
 
 sub _init {