!/usr/bin/perl -w use strict; use diagnostics; use Getopt::Long; my ($server, $proc, $prog); sub usage { print "this is wrong\n"; exit 0; } sub san_check_arg { usage () if $#ARGV != 0; if (defined($server)) { return ($server); } elsif (defined($proc && $prog)) { return ($proc,$prog); } else { usage(); } } my $val1 = eval { GetOptions ( "help" => sub { usage() }, "server=s" => \$server, "process=s" => \$proc, "program=s" => \$prog )}; die usage() if $@; #alone if (!$val1) { usage(); } my @ar = san_check_arg(); #check users input sanity print "@ar\n";