作为一名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 "," . $_; } }