<stdin>在使用Ctrl-Z时仅在Perl脚本中第一次工作

时间:2015-06-24 05:21:21

标签: arrays eclipse windows perl stdin

作为一名Perl初学者,我试图从&#34; Learning Perl&#34;做一个简单的练习。来自Randal L. Schwartz。练习包括从用户输入(<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 ", " . $_;
    }
}

1 个答案:

答案 0 :(得分:1)

问题来自EPIC或Eclipse。如果我在Windows控制台中运行我的代码,一切都很好。我必须使用 Ctrl - Z + 输入。感谢@Сухой27的评论。

相关问题