The module File::MkTemp seems to be what you want:
use File::MkTemp;
$dir = '.'; # directory to create file in
$string = mktemp('tempXXXXXX',$dir);
open(F,$string);
Will return a unique file name, you can also have it return a unique file handle so that there is no chance of opening an identical file in two instances of your script:
use File::MkTemp;
$dir = '.'; # directory to create file in
$fh = mkstemp('tempXXXXXX',$dir);
print $fh "stuff";
$fh->close;
You can add more 'X's, but you need at least six.