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":



  • 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.