[NUUG fiksgatami] [patch] Avoid useless localization in Email.pm

Petter Reinholdtsen pere at hungry.com
Thu Jan 15 15:02:51 CET 2009


When visiting
<URL:http://www.fiksgatami.no/alert?y=1119;feed=local%3a3303%3a1119;x=3303>,
I see these messages in the log:

Useless localization of scalar assignment at /srv/mysociety/bci/web/../../perllib/mySociety/Email.pm line 133.
Useless localization of scalar assignment at /srv/mysociety/bci/web/../../perllib/mySociety/Email.pm line 134.
Useless localization of scalar assignment at /srv/mysociety/bci/web/../../perllib/mySociety/Email.pm line 135.
Useless localization of scalar assignment at /srv/mysociety/bci/web/../../perllib/mySociety/Email.pm line 196.
Useless localization of scalar assignment at /srv/mysociety/bci/web/../../perllib/mySociety/Email.pm line 197.
Useless localization of scalar assignment at /srv/mysociety/bci/web/../../perllib/mySociety/Email.pm line 198.
Useless localization of scalar assignment at /srv/mysociety/bci/web/../../perllib/mySociety/Email.pm line 279.
Useless localization of scalar assignment at /srv/mysociety/bci/web/../../perllib/mySociety/Email.pm line 280.
Useless localization of scalar assignment at /srv/mysociety/bci/web/../../perllib/mySociety/Email.pm line 281.

The code in question is this:

        local($Text::Wrap::columns = 75);
        local($Text::Wrap::huge = 'overflow');
        local($Text::Wrap::unexpand = 0);
        $octets = Text::Wrap::wrap('', ' ', $octets);

    local($Text::Wrap::columns = 69);
    local($Text::Wrap::huge = 'overflow');
    local($Text::Wrap::unexpand = 0);
    my $wrapped = Text::Wrap::wrap('     ', '     ', $body);

        local($Text::Wrap::columns = 69);
        local($Text::Wrap::huge = 'overflow');
        local($Text::Wrap::unexpand = 0);
        $p->{_body_} = Text::Wrap::wrap('     ', '     ', $t);

I believe this patch is the correct way to avoid the problem, by
moving the assignment outside the local() statement.

Index: mySociety/Email.pm
===================================================================
RCS file: /repos/mysociety/perllib/mySociety/Email.pm,v
retrieving revision 1.26
diff -u -3 -p -r1.26 Email.pm
--- mySociety/Email.pm  29 Jul 2008 22:34:25 -0000      1.26
+++ mySociety/Email.pm  15 Jan 2009 14:01:05 -0000
@@ -130,9 +130,9 @@ sub format_mimewords ($;$) {
                 }
             }
         }seg;
-        local($Text::Wrap::columns = 75);
-        local($Text::Wrap::huge = 'overflow');
-        local($Text::Wrap::unexpand = 0);
+        local($Text::Wrap::columns) = 75;
+        local($Text::Wrap::huge) = 'overflow';
+        local($Text::Wrap::unexpand) = 0;
         $octets = Text::Wrap::wrap('', ' ', $octets);
         $octets =~ s/\?= =\?$charset\?$encoding\?//g;
         return $octets;
@@ -193,9 +193,9 @@ sub do_template_substitution ($$) {
     $body =~ s#(?<!\n)(?<!  )\n(?!\n)# #gs;

     # Wrap text to 72-column lines.
-    local($Text::Wrap::columns = 69);
-    local($Text::Wrap::huge = 'overflow');
-    local($Text::Wrap::unexpand = 0);
+    local($Text::Wrap::columns) = 69;
+    local($Text::Wrap::huge) = 'overflow';
+    local($Text::Wrap::unexpand) = 0;
     my $wrapped = Text::Wrap::wrap('     ', '     ', $body);
     $wrapped =~ s/^\s+$//mg; # Do it again because of wordwrapping indented lines

@@ -276,9 +276,9 @@ sub construct_email ($) {
         $t =~ s/\r\n/\n/gs;
         my $sig;
         $sig = $1 if $t =~ s/(\n-- \n.*)//ms;
-        local($Text::Wrap::columns = 69);
-        local($Text::Wrap::huge = 'overflow');
-        local($Text::Wrap::unexpand = 0);
+        local($Text::Wrap::columns) = 69;
+        local($Text::Wrap::huge) = 'overflow';
+        local($Text::Wrap::unexpand) = 0;
         $p->{_body_} = Text::Wrap::wrap('     ', '     ', $t);
         $p->{_body_} =~ s/^\s+$//mg;
         if ($sig) {

Happy hacking,
-- 
Petter Reinholdtsen


More information about the fiksgatami mailing list