Perl中的ARGV,怎么看看不懂,谁能言简意赅的解释一下。谢谢。
展开全部
经常用在以下两处:
脚本外部传参
#!/usr/bin/env perl
my ($first, $second, $third) = ($ARGV[0], $ARGV[1], $ARGV[2]);
print "first : $first, second: $second, third: $third\n";
输入:
perl test.pl a b c
输出:
first : a, second: b, third: c
2. 更方便地修改文件
假设某个名叫sample.txt的文件如下:
#hello world
hello ruby
#hello hadoop
hello python
hello perl
下面我要删除掉注释行(带有'#')的行,则可以写如下的代码:
#!/usr/bin/env perl
use strict;
my $file1 = 'sample.txt';
push @ARGV, $file1;
do {
local $^I = '.bak';
while(<>){
print $_ unless /^#/;
}
}
‘sample.txt'放在上面脚本所在的目录,执行:
perl test.pl
则会在原文件的基础上修改之,修改后的结果为:
hello ruby
hello python
hello perl
这是perl里很重要的一个技巧。为了防止修改错误,我一般在修改时会顺便生成一个原文件的副本,副本文件名为"sample.txt.bak" ,保存副本的相关代码如下:
local $^I = '.bak';
以上两处基本上就是常用的ARGV的地方了。
展开全部
把@ARGV看为一个数组
该数组里面存的是命令行参数,第一个命名为$ARGV[0],第二个为$ARGV[1],依次类推
举例
test.pl a 1 b 2 c 3
a=$ARGV[0];
b=$ARGV[2];
c=$ARGV[4];
1=$ARGV[1];
2=$ARGV[3];
3=$ARGV[5];
希望对你有帮助~
该数组里面存的是命令行参数,第一个命名为$ARGV[0],第二个为$ARGV[1],依次类推
举例
test.pl a 1 b 2 c 3
a=$ARGV[0];
b=$ARGV[2];
c=$ARGV[4];
1=$ARGV[1];
2=$ARGV[3];
3=$ARGV[5];
希望对你有帮助~
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
真是没话说,书中写的多清楚,不看书,来百度问,真是无语
追问
初学者,看了很多遍,始终看不懂。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询