[英]<STDIN> working only the first time in Perl script when using Ctrl-Z
作為一名Perl初學者,我正試圖從Randal L. Schwartz的“Learning Perl”做一個簡單的練習。 練習包括從用戶輸入( <STDIN>
)獲取元素列表,對其進行排序,並在排序時在屏幕上顯示它。 列表可以以兩種不同的方式輸出,使用逗號在同一行上輸出,或在不同的行上輸出。
我的問題是,當我收到來自用戶的輸入列表(每個元素和Ctrl之間的輸入 -當用戶完成Z),我不能使用<STDIN>
試。 因此,我無法獲得所需輸出方法的用戶輸入。
請放縱,我對所有建議持開放態度,包括如何使用Stack Overflow,因為這是我在這里發表的第一篇文章。
編輯:我在Windows上,在Eclipse中使用EPIC模塊。 我已經嘗試過Crtl - D.
這是我的代碼:
#!/usr/bin/perl
use 5.014;
use warnings;
use utf8;
print "Enter the list you want to sort.";
print "Type each element followed by <Enter>.\n";
print "Type <Ctrl-Z> when you are done:\n";
my @list = <STDIN>;
@list = sort @list;
print "Do you want the elements to be printed on individual lines [i] or on the same line [s]?\n";
chomp (my $userChoice = <STDIN>);
if ($userChoice eq "i")
{
foreach (@list)
{
print $_;
}
}
else
{
chomp(@list);
print shift @list;
foreach (@list)
{
print ", " . $_;
}
}
問題來自EPIC或Eclipse。 如果我在Windows控制台中運行我的代碼,一切都很好。 我必須使用Ctrl - Z + Enter 。 感謝@Сухой27的評論。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.