Sheesh. Why not just make the script usage be as UNIX intended it:
perl script.pl > outfile # create new or truncate existing outfile
perl script.pl >> outfile # create new or append to existing outfil
+e
The perl script doesn't have to bother opening a specific output file at all; it just prints. (STDOUT is the default output file handle.) Plus, no more worries over forgetting to include quotes on the command line -- just let the shell do what it's supposed to do.
That also allows you to use the script in yet another handy way (and the last time I checked, the "standard" windows cmd.exe handles all three modes the same way unix and linux do - it's portable!):
perl script.pl | some_other_process ...
That's what we call elegant.