您的位置:首页 > 其它

perl 里的<>和<STDIN>

2013-09-18 13:58 274 查看
首先介绍一下@ARGV:
当perl脚本运行时,从命令行上传递给它的参数存储在内建数组@ARGV中,@ARGV是PERL默认用来接收参数的数组,可以有多个参数,$ARGV[0]是表示接收到的第一个参数,$ARGV[1]表示第二个。

<>操作查看@ARGV来决定使用哪些文件。如果表为空,则使用标准输入流;否则,使用其找到的相应文件。也就是,在启动程序后,使用<>之前,你还有机会修改@ARGV的值。例如,下面程序可以处理3 个指定的文件,无论用户在命令行中输入了什么其它的文件:

@ARGV = qw# larry mor curly #; #强制使用这三个文件

while(<>){

chomp;

print “It was $_ that I saw in some stooge-like file!\n”;

}

#! /usr/bin/perl -w

while(<STDIN>) {

print;

}

=======================

#! /usr/bin/perl -w

while(<>) {

print;

}

角符 <> 和 <STDIN> 最大的不同是 <STDIN> 是由標準輸入取得資料,但:角符 <> 可以由指定的檔案取得資料,而該檔案檔名可以放在命令列中加以指定。如下例:

#! /usr/bin/perl

while (<>) {

print;

}

# 上式存成 readfile.pl,執行法:

./readfile.pl index.html

即可將 index.html 這個檔案讀進來,並且顯示每一列的內容。

若 ./readfile 沒有任何檔案,則改由標準輸入來取得資料,此時,就和 <STDIN> 作用相同了。

==========================================================================

#! /usr/bin/perl -w

print <>; ### 相当于cat

print sort <>; ###相当于sort;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: