use Getopt::Long; #Print useage info sub useage { print "\nNifty usage info should go here\n"; exit; } my ($pass, $user, $config_file); GetOptions( 'pass=s' => \$pass, 'user=s' => \$user, 'config=s' => \$config_file ); if(defined $config ) { # do something }elsif( defined $user and defined $pass){ # do something} }else{ useage(); }