#!/usr/bin/perl -w use strict; use Getopt::Long; use Data::Dumper; $| = 1; my (@foo); my ($bar); my $baz = 0; my $bop = 0; my $quux; if ( scalar( grep( /^-/, @ARGV ) ) ) { GetOptions( 'foo:s' => \@foo, 'bar:s' => \$bar, 'baz+' => \$baz, 'gazonk+' => sub { $bop = !$bop; $bop += 0; }, 'quux' => sub { $quux = scalar localtime; }, 'help' => \&help, ); @foo = split( /,/, join( ',', @foo ) ); print Data::Dumper->Dump( [ \@foo, \$bar, \$baz, \$bop, \$quux ], [qw(*foo *bar *baz *bop *quux)] ), qq{\n}; if ( !$baz ) { if ( !scalar(@foo) ) { &help; } if ( ( !defined($bar) ) or ( !length($bar) ) ) { &help; } } } else { &help; } sub help { printf <