我想把这个用户数据输入并把它放到一个数组中,我似乎无法弄清楚如何做到这一点。
#!/usr/bin/perl
use Modern::Perl;
use diagnostics;
my ($number,$smallest,$largest);
print "\nPlease enter a number or -1 to end,Press enter after every number entered\n";
chomp ($number =<>);
$smallest = $number;
$largest=$number;
while($number !=0)
{
$smallest = $number if $number < $smallest;
$largest = $number if $number > $largest;
chomp ($number=<>);
}
print "\n$smallest:$largest\n";
答案 0 :(得分:0)
在循环中收集数据的最简单方法是这样的:
while (<>) {
chomp;
last if $_ < 0; # -1 ends the loop
push @array, $_; # save number
if ($_ < $smallest) {
$smallest = $_;
}
elsif ($_ > $largest) {
$largest = $_;
}
}
使用while (<>)
是惯用的方式,所以这就是我在这里使用它的原因。
您也可以将它放在一起,并使用该数组来查找最小和最大的数字:
while (<>) {
chomp;
last if $_ < 0;
push @array, $_;
}
@array = sort { $a <=> $b } @array;
print "\n$array[0]:$array[-1]\n";
在这里,您只需对数组进行排序,然后使用第一个和最后一个元素。