Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
I appreciate all your your valuable time. I must say it would take me a bit of a time to absorb everything you have said.

I had not used the 'warning' or 'strict' just to see what happens to uninitialized variables

I misunderstood (as has been rightly pointed out) 'defined' to mean existence of a variable.

I had given the example so that I could get a real understanding of how defined and undef are used in Perl more in a general way. I must say, I am wiser.

However, there is this one specific situation where I make use of 'defined'.

I write small CGI/Perl programs from time to time. I would do something like the following, without having given much thought to it.

my $query = CGI->new; my $p = $query->param('VAR'); if (defined $p && $p ne "") { # To see if $p had non-null value # Do something }

Now the call to param would return 'undef' if VAR was not passed in to the CGI script. However, VAR could have been passed an empty string. In this case though, I am assuming the $p would be initialized to "". So $p could be undef or ""

Without my understanding of how variables are initialized in Perl (with my exposure to C), I always wondered whether the 'If' statement above made sense. In other words, did I need to test for both 'defined' and null string.


In reply to Re: defined vs null string by Anonymous Monk
in thread defined vs null string by Anonymous Monk

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



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (4)
As of 2024-04-25 20:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found