use Getopt::Long qw( :config bundling noignorecase passthrough );
GetOptions (
"help|?" => sub { usage 0; },
"V|version" => sub { print "$cmd [$VERSION]\n"; exit 0; },
"man" => sub { exec "pod2man $0 | nroff -man"; },
"info" => sub { require Pod::Usage;
Pod::Usage::pod2usage (VERBOSE => 2);
exit;
},
"o|c|out=s" => \my $csv,
"i|s|in=s" => \my $xls,
"f|force!" => \my $opt_f,
"A|all!" => \my $opt_a,
"N|no-pfx!" => \my $opt_N,
) or usage 1;
It is assigning the value from the -o, -c, or --out switches to the $csv lexical variable that it is defining in-line |