当我写
#!/usr/bin/perl -w
use strict;
while( <DATA> ) {
print "\n-------------------------\n\n";
print;
<>;
}
Run Code Online (Sandbox Code Playgroud)
每次“返回”后,我得到一行。
为什么每个“返回”一段之后我都看不到下一个脚本?
#!/usr/bin/perl -w
use strict;
local $/ = "";
while( <DATA> ) {
print "\n-------------------------\n\n";
print;
<>;
}
__DATA__
line one
line two
line three
line four
line five
line six
line seven
line eigth
line nine
line ten
line eleven
line twelve
Run Code Online (Sandbox Code Playgroud)
在第一个脚本中,将$ /变量设置为默认值“ \ n”,<DATA>一次将仅返回一行。
我相信第二个脚本可以满足您的要求,只是<>不会在'return'上终止读取,而是在<ctrl-d>上终止读取,这是由于您的$ /设置(其他人指出<>会读取来自STDIN,但我想您已经知道并且正在使用它来调节输出)。
如果您真的想通过“ return”调节输出,则需要在循环中使用$ /进行更多操作。
while(<数据>){
打印“ \ n ------------------------- \ n \ n”;
打印;
$ / =“ \ n”; #默认值,以便以下内容在“返回”时终止读取
<>;
$ / =“”;
}