Perl中的ARGV,怎么看看不懂,谁能言简意赅的解释一下。谢谢。

 我来答
suanniba2
2014-02-26 · TA获得超过710个赞
知道答主
回答量:39
采纳率:100%
帮助的人:34.6万
展开全部

经常用在以下两处:

  1. 脚本外部传参

#!/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的地方了。

越胖越能吃
2014-02-26 · 超过22用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:39.8万
展开全部
把@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];
希望对你有帮助~
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
张萍和张桂秋
2014-02-26 · TA获得超过106个赞
知道答主
回答量:209
采纳率:0%
帮助的人:73.8万
展开全部
真是没话说,书中写的多清楚,不看书,来百度问,真是无语
追问
初学者,看了很多遍,始终看不懂。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式