Я бы предложил GetOpt :: Долго для достижения этого. Но если вы хотите сделать свой собственный посмотреть, если что-то подобное было бы удобно:
use strict;
use warnings;
# Usage check. For "perl xxx.pl -a arg1 -b arg2" args. should be even nos.
if (scalar @ARGV == 0 or scalar @ARGV % 2 != 0) {
print "Usage:\n\t$0 -a arg1 -b arg2 requires all args\n";
exit 0;
}
# This one convert cmd line args. to hash ex. (perl xxx.pl -a arg1 -b arg2) to {-a => arg1, -b => arg2}
my %argHash = @ARGV;
# Optional but see if all the args are present
my $maxArgs = 2;
if (scalar keys %argHash != $maxArgs) {
print "Usage:\n\t$0 -a arg1 -b arg2 requires exactly $maxArgs args\n";
exit 0;
}
# Parse arguments.
print "$0:\n";
for my $key (keys %argHash) {
print "\t $key: $argHash{$key}\n";
}
1;
Результат:
c:\swadhi\perl>perl cmdline.pl
Usage:
cmdline.pl -a arg1 -b arg2 requires all args
c:\swadhi\perl>perl cmdline.pl -a "user" -b
Usage:
cmdline.pl -a arg1 -b arg2 requires all args
c:\swadhi\perl>perl cmdline.pl -a "user" -b "Command"
cmdline.pl:
-a: user
-b: Command
c:\swadhi\perl>perl cmdline.pl -a "user" -b "Command" -c "mock"
Usage:
cmdline.pl -a arg1 -b arg2 requires exactly 2 args
c:\swadhi\perl>perl cmdline.pl -a "user"
Usage:
cmdline.pl -a arg1 -b arg2 requires exactly 2 args
Ohhk спасибо, что я должен посмотреть это ** Getopt :: Long ** потому что я понятия не имею, как это сделать в новом Perl, который вы знаете. –
Просто взгляните и попытайтесь сделать это самостоятельно, и если вы столкнетесь с какой-либо проблемой, приходите сюда с вашими попытками. Мы рады помочь вам. – serenesat
Согласен! Спасибо serene .. –