加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

数组 – 使用Ctrl-Z时仅在Perl脚本中第一次工作

发布时间:2020-12-16 06:13:40 所属栏目:大数据 来源:网络整理
导读:作为一名Perl初学者,我正试图从Randal L. Schwartz的“Learning Perl”做一个简单的练习.练习包括从用户输入( STDIN)获取元素列表,对其进行排序,并在排序时在屏幕上显示它.列表可以以两种不同的方式输出,使用逗号在同一行上输出,或在不同的行上输出. 我的问
作为一名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的评论.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读