sub usage { my $err = shift and select STDERR; print "usage: ...\n"; exit $err; } # usage use Getopt::Long qw(:config bundling nopermute); my $fldname; my $dirname = "/tmp"; my $inline = 0; # etc ... GetOptions ( "h|help|?" => sub { usage (0) }, "v|verbose:1" => \$verbose, "f=s" => \$fldname, "i" => \$inline, "1=s" => sub { read_structure_type ($_[1]) }, ) or usage (1);