Bug 6554 Fix error caused by modifying $_ in a map
[koha.git] / C4 / Context.pm
index 4d170b2..fee8752 100644 (file)
@@ -1104,9 +1104,22 @@ set_userenv is called in Auth.pm
 
 #'
 sub set_userenv {
-    my ($usernum, $userid, $usercnum, $userfirstname, $usersurname, $userbranch, $branchname, $userflags, $emailaddress, $branchprinter, $persona)=
-    map { utf8::decode($_); $_ } # CGI::Session doesn't handle utf-8, so we decode it here
-    @_;
+    my (
+        $usernum,      $userid,        $usercnum,   $userfirstname,
+        $usersurname,  $userbranch,    $branchname, $userflags,
+        $emailaddress, $branchprinter, $persona
+    ) = @_;
+    for (
+        $usernum,      $userid,        $usercnum,   $userfirstname,
+        $usersurname,  $userbranch,    $branchname, $userflags,
+        $emailaddress, $branchprinter, $persona
+      )
+    {
+        utf8::decode($_) if $_;
+    }
+
+    # CGI::Session doesn't handle utf-8, so we decode it here
+
     my $var=$context->{"activeuser"} || '';
     my $cell = {
         "number"     => $usernum,