Autovification sollte auch genau das tun, und nicht clobbern.
authorSven Schöling <s.schoeling@linet-services.de>
Thu, 29 Dec 2011 09:41:40 +0000 (10:41 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Thu, 29 Dec 2011 09:41:40 +0000 (10:41 +0100)
SL/Request.pm

index d339cb7..57b7297 100644 (file)
@@ -153,8 +153,8 @@ sub _recode_recursively {
         # though.
         $to->{$key} = $iconv->convert("" . $from->{$key});
       } else {
-        $to->{$key} = {} if 'HASH'  eq ref $from->{$key};
-        $to->{$key} = [] if 'ARRAY' eq ref $from->{$key};
+        $to->{$key} ||= {} if 'HASH'  eq ref $from->{$key};
+        $to->{$key} ||= [] if 'ARRAY' eq ref $from->{$key};
         _recode_recursively($iconv, $from->{$key}, $to->{$key});
       }
     }
@@ -167,8 +167,8 @@ sub _recode_recursively {
         # though.
         $from->[$idx] = $iconv->convert("" . $from->[$idx]);
       } else {
-        $to->[$idx] = {} if 'HASH'  eq ref $from->[$idx];
-        $to->[$idx] = [] if 'ARRAY' eq ref $from->[$idx];
+        $to->[$idx] ||= {} if 'HASH'  eq ref $from->[$idx];
+        $to->[$idx] ||= [] if 'ARRAY' eq ref $from->[$idx];
         _recode_recursively($iconv, $from->[$idx], $to->[$idx]);
       }
     }