Perl:从<&燃气轮机;
在Perl中,从Perl:从<&燃气轮机;,perl,readfile,diamond-operator,Perl,Readfile,Diamond Operator,在Perl中,从读取做什么?例如,以下操作将执行什么操作 print for(<>); printfor(); 它一次读取一行标准输入,并将其存储到$\ucode>。print然后在默认情况下打印出$\uu,因为它没有参数。此程序从标准输入读取数据,并回显到标准输出,直到达到EOF。所谓的菱形运算符()从STDIN或指定为命令行参数的文件名中逐行(在标量上下文中)读取数据 发件人: 空文件句柄是特殊的:它可以用来模拟 sed和awk的行为。来自的输入来自标准 输入,或从命令行上列出
读取做什么?例如,以下操作将执行什么操作
print for(<>);
printfor();
它一次读取一行标准输入,并将其存储到$\ucode>。print然后在默认情况下打印出$\uu
,因为它没有参数。此程序从标准输入读取数据,并回显到标准输出,直到达到EOF。所谓的菱形运算符(
)从STDIN或指定为命令行参数的文件名中逐行(在标量上下文中)读取数据
发件人:
空文件句柄
是特殊的:它可以用来模拟
sed和awk的行为。来自
的输入来自标准
输入,或从命令行上列出的每个文件。这是怎么回事
工作:第一次计算
时,检查@ARGV
数组,
如果它是空的,$ARGV[0]
被设置为“-”
,当打开时
为您提供标准输入。然后将@ARGV
数组作为
文件名列表
在列表上下文中,
返回所有行,每行作为列表中的一个元素存储
这意味着,print for
将执行与打印时相同的操作代码>,尽管内存更多。您已经找到了Perl最神奇的一块。嗯,我相信还有更多神奇的东西,但是这个小习惯用法使编写用于shell管道和文件操作的程序变得非常容易
在没有任何参数的情况下运行时,
将从标准输入中一次读取一行
当使用参数运行时,它会将参数视为文件名,并依次从命名文件中一次读取一行
一个简短的演示:
$ cat > print.pl
#!/usr/bin/perl -w
print for(<>);
$ chmod 755 print.pl
$ echo hello world | ./print.pl
hello world
$ ./print.pl print.pl
#!/usr/bin/perl -w
print for(<>);
$ ./print.pl print.pl print.pl
#!/usr/bin/perl -w
print for(<>);
#!/usr/bin/perl -w
print for(<>);
$
$cat>print.pl
#!/usr/bin/perl-w
为()打印;
$chmod 755 print.pl
$echo hello world |/print.pl
你好,世界
$./print.pl print.pl
#!/usr/bin/perl-w
为()打印;
$./print.pl print.pl print.pl
#!/usr/bin/perl-w
为()打印;
#!/usr/bin/perl-w
为()打印;
$
我在那里手工输入程序;完全输入后,点击^D
。我点击了。由于某种原因,堆栈溢出会破坏下划线。