Are all the characters in your filename legal for your platform? On Windows, for instance, you can't use the ':' character in a filename except after a one-character volume name. Best to use $! and print out error messages, as others have suggested. You also may want to use a numeric timestamp instead.
Comment on Re: still can't create a file using a variable
i created a datetime constant for use in a few of my scripts that run on Win32 && *NIX, for use in creating temporary directories and files. here's a snippet you may find helpful.
use POSIX;
use constant DATETIME => strftime("%Y-%m-%d_%H-%M-%S", localtime);