chomp($input = <>);
我如何知道$input
是 Ctrl + D ?
答案 0 :(得分:2)
当你从<>
获得undef时,你知道你已经达到了eof,但在你的情况下,chomp
正在隐藏它。
在EOF之前阅读的通常的Perl习语如下:
while(<>) {
chomp;
# do whatever you want with the line in $_
# ...
}
答案 1 :(得分:2)
我想你的问题ctrl-d
等同于EOF
,就像在UNIX上一样?在$fh
中有一些文件句柄:
while ( <$fh> ) {
# use $_ here
}
或者,如果你坚持要明确说明Perl在幕后所做的事情:
while ( defined( $_ = <$fh> ) ) {
# use $_ here
}
或者使用其他变量:
while ( defined( my $in = <$fh> ) ) {
# use $in here
}
答案 2 :(得分:0)
每个人似乎都在为你提出的问题增加很多。
简单地说,为:
chomp($input = <>);
您可以通过以下方式判断^D
已被按下:
print "EOF reached\n" if not defined $input;