在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
getopts的使用问题 #!/usr/bin/perl #execute ABC.pl -s 999 -g -t use Getopt::Std; getopts('s:t:g:',\%opts); foreach my $key ( keys %opts){ print $key,"-->;",$opts{$key},"\n"; } ------------------------------------- 注意看getopts('st:g:'); ------------------------------------- #!/usr/bin/perl # script is "./g" use Getopt::Std; %options=();####################是perl的hash数据结构 getopts("od:fF",\%options); [ 解释一下"od:fF",d后有冒号,表示-d后面要跟参数。ofF后面没有冒号,表示-o -f -F后面不带参数。 而且-d后所跟的参数分别赋给变量$options{d}。对于变量$options{o},$options{f},$options{F},若命令行加了-o,则$options{o}=1,否则为0。-f,-F类似] # like the shell getopt, "d:" means d takes an argument print "-o $options{o}\n" if defined $options{o}; print "-d $options{d}\n" if defined $options{d}; print "-f $options{f}\n" if defined $options{f}; print "-F $options{F}\n" if defined $options{F}; print "Unprocessed by Getopt::Std:\n" if $ARGV[0]; foreach (@ARGV) { print "$_\n"; } ------------------------------------- shift ARRAY shift 这个函数把数组的第一个值移出并且返回它,然后把数组长度减一并且把所有的东西都顺移。如果在数组中不再存在元素,它返回 undef。 如果省略了 ARRAY,那么该函数在子过程和格式的词法范围里移动 @_;它在文件范围(通常是主程序)里移动 @ARGV。 子过程通常以拷贝它们的参数到词法变量里开始,而 shift 可以用于这个目的 总之就是shift没有数组作为参数时,就是移动@_这个默认的参数。 ------------------------------------- http://search.cpan.org/~nwclark/perl-5.8.5/lib/Getopt/Std.pm |
请发表评论