perl 学习笔记完
第六章 I/O基础
从标准输入进行输入
while (defined($line = <STDIN>)) {
print "I saw $line";
};
因为行输入操作符在你到达文件末尾时会返回undef,所以可以用它方便地跳出循环。
从钻石操作符进行输入
“<>”
是一种特殊的行输入操作符,它可以是也可以不是来自键盘的输入。
while (defined($line = <>)) {
chomp($line);
print "It was $line that I saw!\n";
};
如果用a,b,c三个参数调用该程序,将打印三个文件的内容。使用钻石操作符,就好像输入文件被合并到一个大文件中。上面程序可用快捷方式写成:
while (<>) {
chomp;
print "It was $_ that I saw!\n";
};
大多数linux标准工具中,短横-代表标准输入流。
通常在一个程序中只用一个钻石操作符,当初学者在程序中放第二个钻石时,其实他们一般是想用$_。记住,钻石操作符读取输入,但输入本身是在$_中。
调用参数
钻石操作符并不是直接从字面上读取调用参数,它实际上读取@ARGV数组。它被perl解释器预设为调用参数的列表。在程序中可以对该数组进行赋值等操作。
@ARGV = qw# a b c #; 强制读取这三个文件
while (<>) {
chomp;
print "It was $_ that I saw!\n";
};