in reply to File Backup Utility

Rather than rolling your own usage handling, consider the core module Pod::Usage. Format that really long help documentation print line as POD, and you're ready to go. POD turns your useful header comments into a manpage using perldoc.

Another alternative is to use a "here-document" (see perlop).

Add use warnings;.

You could check the return status of getopts and die if you do not want the user to pass bogus options.


scalar @ARGV < 0
I do not think this will ever evaluate to 'true' because I'm not sure if it is possible for an array to have a negative number of elements. Maybe scalar @ARGV == 0?