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.
in reply to File Backup Utility
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?