2

我制作了以下脚本:

print "Will accept input until EOF";  

while(defined($line = <STDIN>)){  
    print "Input was $line \n";  
    if(chomp(@line) eq "end"){  
        print "aha\n";  
        last;  
    }  
}  

我有两个问题:

  1. 为什么当我end在控制台中输入时,我看不到循环中的ahaand breaklast是否等于break正确)?
  2. 停止循环EOF的组合键是什么?while我以为它ctrl+DWindows但它不起作用。
4

2 回答 2

6

你的脚本错过了use strict; use warnings;。否则,您会注意到$lineis not @line

此外,chomp不会返回更改后的字符串,而是将其更改到位并返回删除的字符数。

在 MSwin 中,Ctrl+ZEnter用作 EOF。

更新:修复了 EOF。

于 2013-04-07T18:06:19.867 回答
3

我修改了你的代码:

use strict;
use warnings;

print "Will accept input until EOF";  

while( my $line = <STDIN> ){  
   chomp $line;
   print "Input was $line\n";  
   if( $line eq 'end'){  
      print "aha\n";  
      last;  
   }  
}
于 2013-04-07T18:08:41.870 回答