簡體   English   中英

<STDIN>使用Ctrl-Z時,只在Perl腳本中第一次工作

[英]<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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM