when ( 'h' ) { ... } #### if ( $k eq 'h' ) { ...; next } #### use Getopt::Long qw( GetOptions ); Getopt::Long::Configure(qw( posix_default )); GetOptions( 'help|h|?' => \&help, 'verbose|v' => \my $verbose, 'force|f' => \my $force, 'table|t=s' => \my $table, ) or usage(); @ARGV == 0 or usage( "Too many arguments" ); #### use File::Basename qw( basename ); sub help { my $prog = basename( $0 ); print "Usage: $prog [options] $prog --help Options: --verbose -v ... --force -f ... --table {table} -t {table} ... "; exit( 0 ); } sub usage { if ( @_ ) { my ( $msg ) = @_; chomp( $msg ); say STDERR $msg; } my $prog = basename( $0 ); say STDERR "Try '$prog --help' for more information."; exit( 1 ); }