Good day Monks,

I am trying to determine if what I am doing is appropriate or if there are easier/better ways. I have a huge variable list that is broken down into scalars, arrays and hashs. I am extracting those values from xml documents that are non-standard and differ one to another so the variables from one document to another may or may not have data present. When passing variables that may be undef or "" (empty) values, I am trying to make sure the field in which the variable will populate into a database contains "null". Not for a particular requirement but because I fear that somewhere through the code an array value is missing and therefore shifts the value of another field into a placeholder of a different field. I understand that if I were a Monk I would have probably been able to figure out a more elegant way to maintain such field integrity but unfortunately I am not capable at this point. Thus I am going to use the following function to populate a "null" value into undef or empty variables and wanted to know if an obvious problem may exist with solution or is there an easier way to accomplish the same task? My assumption is that undef variables would be translated into "" (empty string) upon its use within Perl and not require the use of the defined function. Thanks in advance for any responses.

Danny

use strict; my $out; my $COUNT = 0; my $PORT = undef; my $PATH = "/usr/local"; my $CODE = ""; my $COUNT = ifnil($COUNT); my $PORT = ifnil($PORT); my $PATH = ifnil($PATH); my $CODE = ifnil($CODE); print "COUNT: $COUNT\nPORT: $PORT\nPATH: $PATH\nCODE: $CODE\n"; sub ifnil { my ($value) = @_; my $null = "null"; if ( $value eq "" ) { $out = $null; } else { $out = $value; } return $out; }

In reply to undef and empty variables by onegative

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.