#!/usr/bin/perl -w
use strict;
my @argv = @ARGV;
if (0==scalar((@argv))) { &print_Usage(); exit(0); }
&get_Parameter();
sub get_Parameter()
{
while(@argv)
{
my $strWord = shift(@argv);
my ($name,$value) = (undef,undef);
if ( ($name,$value) = $strWord =~ /^\-(\w)\=(\w+)$/) { }
elsif ( ($name,$value) = $strWord =~ /^\-\-(\w{2,})\=(\w+)$/) { }
elsif ($strWord =~ /^\-\-(\w{2,})$/)
{
if (scalar(@argv)==0) { print("X: insufficient parameter for $strWord\n"); last; }
($name,$value) = ($1,shift(@argv));
}
elsif ($strWord =~ /^\-(\w)$/)
{
if (scalar(@argv)==0) { print("X: insufficient parameter for $strWord\n"); last; }
($name,$value) = ($1,shift(@argv));
}
else
{
print("X: unrecognized parameter: $strWord\n"); next;
}
&take_Action($name,$value);
}
}
sub take_Action($$)
{
my ($operator,$operant) = @_;
if ($operator eq "h" or $operator eq "hi") { print("Hello $operant\n"); }
elsif ($operator eq "b" or $operator eq "bye") { print("Goodbye $operant\n"); }
else { print("X: undefined parameter: $operator\n"); }
}
sub print_Usage()
{
my $strSelf = $0; $strSelf =~ s/.+[\\\/]//;
print("usage: $strSelf\n".
" --hi Name\n".
" -h Name\n".
" --bye Name\n".
" -b Name\n".
" --hi=Name\n".
" -b=Name\n");
}

沒有留言:
張貼留言