perldoc GetOpt::Long 应该能看懂啊,不过manual很多,我记得 我来回答下
1、我查看了perldoc Getopt::Long,大体知道 fileformat是在命令行中使用的参数,应当 是一个string,然后传递到程序内部时由$Fileformat接收这个值。是这样么?有没有误读? 左边是命令行要出现的东西, 右边是自己输入的参数,比如 这个脚本用做 test.pl -fileformat AAA -cutoff BBB -verbose CCCC -help DDD , 命令行输入的AAA, BBB, CCC , DDD 自动的被替换成那 4 个变量, 从而被获取, 2、但是为什么是\$Fileformat,一个reference呢?写成"fileformat:s"=>$Fileformat可不可以,为什么?二 者什么区别? 是用引用,一般都是引用,是一个指针的东西, 3、另外,为什么参数开关使用了fileformat,在内部就不能使用$fileformat,而是换成$Fileformat呢? 在test.pl 内部并没有占用$fileformat这个变量啊? 脚本一开始应该定义 了 my ($Fileformat,$Cutoff,$Verbose,$Help); 了,当然是只能用这些变量, 4、在命令行中运行此程序时,带开关的参数传到程序内部由GetOptions来处理,没有被参数开关指定的参数都保存进@ARGV? 这个不记得,应该是, 再多看看 manual, 2011/11/6 Dejian Zhao <[email protected]> > 下面代码是在别人脚本(test.pl)中看到的,有几个问题,希望达人给解答一下。多谢! > > ==========test.pl======== > use strict; > use Getopt::Long; > > my ($Fileformat,$Cutoff,$Verbose,$Help); > GetOptions( > "fileformat:s"=>\$Fileformat, > "cutoff:s"=>\$Cutoff, > "verbose"=>\$Verbose, > "help"=>\$Help > ); > die `pod2text $0` if (@ARGV == 0 || $Help); > ========================= > > 主要是GetOptions()里面的部分看不懂,以 "fileformat:s"=>\$Fileformat为例来解读这段代码。 > > 1、我查看了perldoc Getopt::Long,大体知道 fileformat是在命令行中使用的参数,应当 是一个string > ,然后传递到程序内部时由$Fileformat接收这个值。是这样么?有没有误读? > > 2、但是为什么是\$Fileformat,一个reference呢?写成"fileformat:s"=>$Fileformat可不可以,为什么?二 > 者什么区别? > > 3、另外,为什么参数开关使用了fileformat,在内部就不能使用$fileformat,而是换成$Fileformat呢? 在test.pl > 内部并没有占用$fileformat这个变量啊? > > 4、在命令行中运行此程序时,带开关的参数传到程序内部由GetOptions来处理,没有被参数开关指定的参数都保存进@ARGV? > > > -- > 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。 > 要向此网上论坛发帖,请发送电子邮件至 [email protected]。 > 要取消订阅此网上论坛,请发送电子邮件至 [email protected]。 > 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。 > -- Yours Sincerely Zeng Hong -- 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。 要向此网上论坛发帖,请发送电子邮件至 [email protected]。 要取消订阅此网上论坛,请发送电子邮件至 [email protected]。 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
