I'm seeking some wisdom after having read Return of Program Repair Shop and Red Flags on perl.com.

The background for this is that I'm storing dates produced by localtime() in an XML file. The application that will be parsing the data (not mine, written in Visual C, can't change it) is expecting dates and times in the format MM-DD-YYYY HH:mm. In order to ensure that dates are formatted as required, I've written a routine to pad numeric values that are not long enough with zeros as follows:

# The appropriate time / date values are retrieved from localtime() ($sec, $min, $hour) = paddatevalues($sec, $min, $hour); sub paddatevalues { foreach my $value (@_) { while (length $value < 2) { $value = '0'.$value; } } return @_; }

The article mentions that whenever you say something like if (length $somenumber < 3), you should think about replacing it with if ($somenumber < 1000). Due to the potential for zero values being passed into my subroutine, a simple if ($value < 9) won't do what I need it to do - I'll end up with a '0' instead of a '00'. Is there a good way to not treat my number as a string without using an if ... elsif to catch the special case (zero)?

--
Grant me the wisdom to shut my mouth when I don't know what I'm talking about.


In reply to Zero-padding integers and the numbers-as-strings Red Flag by Ionizor

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.