The error message isn't coming from within your subroutine; it's coming from within your loop through the images, at line 15. It's telling you that the $dir variable is undefined on each trip through the loop, although you're correct that you only assigned to it once, before the loop.

I only have time for a quick glance right now, but I suspect that your "last if not $made" logic has gotten things a little confused. To me, that says to break out of the loop if the directory was NOT made. If it was NOT made (which would be the case if your first attempt at picking a name picked one that already existed), then $made will be false, so your first return will not trigger, and your second return will return undef, which is assigned to $die. You probably want "last if $made", because you want to break out of the loop once the directory is created, right?

Aaron B.
My Woefully Neglected Blog, where I occasionally mention Perl.


In reply to Re^4: getting a while loop to terminate by aaron_baugher
in thread getting a while loop to terminate by Aldebaran

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.