in reply to GetOpt::Long empty ARGV

Hello Pazitiff,

Getopt::Long consumes what it find in @ARGV is because of this that you'll find it empty and you never reach the second condition.

If you want to set some default, do that before even calling the GetOpts routine: in the case of a switch is simple, but if you only want to print the help anyway do that with an explicit call for the Help sub and leave it away from @ARGV
See also this thread about the use of the module. Remember can you can leave something in @ARGV using the double dash -- see also The Dynamic Duo --or-- Holy Getopt::Long, Pod::UsageMan!

HtH
L*
UPDATE: your second 'condition' is not a condition! And also remove the exit 1 from the sub Help or the program will exit, as requested.
There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.