从 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 ) { ... }
    ...
    }

不过不要迷恋成语。有经验的人会做的一些事情在其他人看来很神秘。不仅如此,对于一些成语的恰当性,有经验的人也意见不一

如果您正在编写有经验的人会阅读的代码,请问他们喜欢什么。用你知道的方式写,最终会有人抱怨。一个更好的问题可能是“这样做的好方法吗?”,然后向我们展示您在做什么。