Of course, warnings complains that "The variable is used only once."

This error pops up occasionally, usually for the right reason but occasionally, (such as where you declare a variable in your script but only acess the variable from within an eval), quite incorrectly.

The solution is usually simple:

use warnings; use strict; our $x; eval (' $x=1; print $x; '); #Generates a warning that $x is only used once.. Incorrectly. # {my $work_around=$x} # Uncomment to make the error go away.
By adding the anonymous block with the (useless but for its side effect) lexical declaration and assignment of $x, the compiler has now seen the variable twice and the warning goes away, but with little cost or impact on your script. (In fact it wouldnt suprise me in the least if the compiler optimizes it away, _after_ the lexical analysis phase)

If you had to make a bunch of these disappear then maybe

{ my @work_around=($x,$y,$z); }
Would be the neatest way to resolve them all in one workaround.

Yves / DeMerphq
--
This space for rent.


In reply to Re: -w, strict, and Tk... by demerphq
in thread -w, strict, and Tk... by Necos

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.