Barry Brevik wrote:
> Hello-
>  
>>From time to time I need a subroutine to generate a temporary file name
> so I created an imperfect routine (shown below) to generate a file name
> based on the current time. The problem with this is that it will create
> only 1 'unique' name every second, and when the day rolls over, it will
> start duplicating those supposedly unique file names.
> 
> None of this has been an issue in the past, but now it is, so I'm asking
> if any of you have a better, more unique, algorithm equal to the task.
> If it is not guaranteed to be unique, it is OK if I have to call it 4 or
> 5 times until I get a unique file name.

Did you need to roll your own or would File::Temp do? It works ok for me.

File::Temp(3)                                           User Contributed
Perl Documentation                                          File::Temp(3)



NAME
       File::Temp - return name and handle of a temporary file safely

SYNOPSIS
         use File::Temp qw/ tempfile tempdir /;

         $fh = tempfile();
         ($fh, $filename) = tempfile();

         ($fh, $filename) = tempfile( $template, DIR => $dir);
         ($fh, $filename) = tempfile( $template, SUFFIX => '.dat');
         ($fh, $filename) = tempfile( $template, TMPDIR => 1 );

         binmode( $fh, ":utf8" );

         $dir = tempdir( CLEANUP => 1 );
         ($fh, $filename) = tempfile( DIR => $dir );

       Object interface:

         require File::Temp;
         use File::Temp ();
         use File::Temp qw/ :seekable /;

         $fh = File::Temp->new();
         $fname = $fh->filename;

         $fh = File::Temp->new(TEMPLATE => $template);
         $fname = $fh->filename;

         $tmp = File::Temp->new( UNLINK => 0, SUFFIX => '.dat' );
         print $tmp "Some data\n";
         print "Filename is $tmp\n";
         $tmp->seek( 0, SEEK_END );

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to