$VAR1 = [
'test.xls',
'test-2.xls',
'test-3.xls'
];
####
#!/usr/bin/perl
use strict;
use warnings;
use Getopt::Long();
sub usage {
my $message = shift(@_);
if (defined $message && length $message) {
$message .= "\n"
unless $message =~ /\n$/;
}
my $command = $0;
$command =~ s#^.*/##;
print STDERR (
$message,
"usage: $command -f file(s).xls -p file.csv\n"
);
die("\n")
}
my @xls;
my $csv;
print "This is the number of \@ARGV arguments before the process ".@ARGV."\n";
Getopt::Long::GetOptions(
'f=s{1,}' => sub {
foreach $_ (@_) {
print $_ . "\n";
/\.xls$/
or die ("Invalid format for option expected -f '*.xls'\n");
push(@xls,$_);
}
},
'p=s' => sub {
$_ = pop @_;
/\.csv$/
or die ("Invalid format for option expected -p '*.csv'\n");
$csv = $_;
}
)
or usage("Invalid commmand line options.");
usage("The '*.xls' file(s) needs to be specified.")
if scalar (@xls == 0);
usage("The '*.csv' file needs to be specified.")
unless defined $csv;
print "Input given form \@xls: ".@xls."\n";
print "Input given form \$csv: ".$csv."\n";
=test
'f=s{1,}' => sub {
foreach $_ (@_) {
print $_ . "\n";
/\.xls$/
or die ("Invalid format for option expected -p '*.xls'\n");
=cut
####
This is the number of @ARGV arguments before the process 4
f
Invalid format for option expected -f '*.xls'
Invalid commmand line options.
usage: long.pl -f file(s).xls -p file.csv
####
Getopt::Long::GetOptions(
'f=s{1,}' => sub {
foreach $_ (@_) {
if ($_ =~ /\.xls$/) {
print "This is if \$_: ".$_."\n";
push( @xls , $_ );
}
elsif ($_ =~ /^f/) {
next;
}
else {
die ("Invalid format for option expected -f '*.xls'\n");
}
} # End of foreach
},
'p=s' => sub {
$_ = pop @_;
/\.csv$/
or die ("Invalid format for option expected -p '*.csv'\n");
$csv = $_;
}
)
or usage("Invalid commmand line options.");