I'll skip the File::Temp speech, everyone else has mentioned. However there is probably a bug in the larger picture of the code here. First, as someone mentioned, there's nothing to keep a directory from existing by that name, the
-f return false. The other is that now that you've got a filename that isn't use, what are you doing with it? There's nothing that guarantees it doesn't get used by another process between the time that you generate it and the time you do something with it. If you are wanting to create a tmp file (without using File::Temp for some reason), then try:
#!/usr/bin/perl
use strict;
use Fcntl;
my $TMPDIR = "/tmp";
my $limit = 99999;
my $md;
do {
my $tmpname = int(rand($limit));
$md = "$TMPDIR/runitout_$tmpname";
} until(sysopen(my $fd, $md, O_CREAT|O_EXCL));
This will loop until it can create the file in question, and the O_EXCL means that the create will fail if that file is already in existence.
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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.