Beefy Boxes and Bandwidth Generously Provided by pair Networks Frank
Problems? Is your data what you think it is?
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??

I'm sorry, but those aren't global variables, they are just lexically scoped variables at the "highest level" of a script.

Declaring variables like this is bad practice, in my mind if you're doing CGI programming, or any other perl programming that creates persistent compiled copies of perl scripts.

This type variable sharing will give the famous "variable will not stay shared" error with mod_perl.

If you're never going to use mod_perl, then you can keep on coding this way. A better way would be to pass all variables to your subroutines as arguments, thusly:

first_sub('Testing, testing',' one, two, three'); sub first_sub { my ($var,$var2)=@_; second_sub($var,$var2); } sub second_sub { my ($variable,$variable2)=@_; print $variable.$variable2; }

This more rigid, but it really helps you keep your variables in line, making for easier maintaince down the road. You can reuse the subroutine elsewhere, 'cuz you know exactly what goes in and what comes out.

You could declare the variables as globals with the closed perl equivalent, thusly:

use strict; use vars qw/$var1 $var2/;

but this is bad programming practice generally, as I understand it. (why is this? Is it due strictly to memory usage?)

Update: Of course. I must have had a brain cramp. See TGI's post below.


In reply to Re: Re: using 'my' by Hero Zzyzzx
in thread using 'my' by kiat

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!
  • 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, 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, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            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.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others about the Monastery: (4)
    As of 2014-04-21 05:08 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      April first is:







      Results (490 votes), past polls