从 stdin 一次读取两行的惯用方法
Idiomatic way to read two lines at a time from stdin
我不是一个 Perl 用户,所以我不太适应那里所有的 Perl 习语。
有没有一种惯用的方法可以一次从标准输入读取两行到数组中?
没有一种惯用的方法可以一次获得两行输入。但是,您可以自己编写。你的子程序可以做任何你需要做的事情(比如跳过空白行或注释行):
my @two_lines = get_two_lines( $filehandle );
但是,真正控制您正在做的事情的是您的任务。也许像这样更有意义:
while( my $first_line = <> ) {
my $second_line = <>; # read again
if( ! defined $second_line ) { ... }
...
}
不过不要迷恋成语。有经验的人会做的一些事情在其他人看来很神秘。不仅如此,对于一些成语的恰当性,有经验的人也意见不一
如果您正在编写有经验的人会阅读的代码,请问他们喜欢什么。用你知道的方式写,最终会有人抱怨。一个更好的问题可能是“这样做的好方法吗?”,然后向我们展示您在做什么。
我不是一个 Perl 用户,所以我不太适应那里所有的 Perl 习语。
有没有一种惯用的方法可以一次从标准输入读取两行到数组中?
没有一种惯用的方法可以一次获得两行输入。但是,您可以自己编写。你的子程序可以做任何你需要做的事情(比如跳过空白行或注释行):
my @two_lines = get_two_lines( $filehandle );
但是,真正控制您正在做的事情的是您的任务。也许像这样更有意义:
while( my $first_line = <> ) {
my $second_line = <>; # read again
if( ! defined $second_line ) { ... }
...
}
不过不要迷恋成语。有经验的人会做的一些事情在其他人看来很神秘。不仅如此,对于一些成语的恰当性,有经验的人也意见不一
如果您正在编写有经验的人会阅读的代码,请问他们喜欢什么。用你知道的方式写,最终会有人抱怨。一个更好的问题可能是“这样做的好方法吗?”,然后向我们展示您在做什么。