My 2nd example showed how you can limit the scope of the lexical variable: just wrap the desired area in a block. The variable will exist only within that block. That is the "better way" you were looking for.
You should note that your use of "global" is not the same as Perl's. Variables that are declared with my are never globals. They are lexicals, scoped either by an enclosing block, or by the file if there is no enclosing block. Globals, on the other hand, are associated with packages and have entries in symbol tables. It is this type of global that perl was warning you about when it complained about your print $response statement. Because you had not declared the variable as lexical in the enclosing scope, $response was presumed to be $main::response (that is, the global variable named $response within the main:: package).
The PerlMonk tr/// Advocate
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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.