2013-08-20 100 views
0

如何從控制檯讀取多行perl?從控制檯讀取多行

我已經使用@a = <STDIN>;但我無法從這個陳述中走出來。我打了輸入它進入新線。我已閱讀並擊中ctrl+d以結束輸入,但似乎不起作用。

任何人都可以幫助我謝謝。任何幫助是極大的讚賞。

+1

在空行上點擊'Ctrl + d',或點擊兩次。在MSWin上,使用'Ctrl + z'。 – choroba

+1

您使用的符號意味着'直到EOF',因此您必須提供EOF指示,這意味着在空行輸入control-D或control-Z或在非空行上輸入兩次字符。如果您不想'直到EOF'讀取,請使用不同的方式讀取數據。 –

回答

0

您可以使用while循環,

my @a; 
while (<STDIN>) { 
    /\S/ or last; # last line if empty 
    push @a, $_; 
} 

print @a; 
2

也許一個更好的想法是某種形式的循環:

use strict; 
use warnings; 

my @a; 
for(;;) { 
    my $input = <STDIN>; 
    last if not defined $input; 
    chomp $input; 
    push @a, $input; 
} 

,當你在Unix <EOF>(這通常是默認設置爲Ctrl-D)型這將結束。

0

好像你是在Windows上。在Windows上,您必須點擊Control-z上的空行,然後點擊Enter。