您可以使用来自while循环的用户输入数据并将其放入循环中

时间:2015-11-05 22:21:28

标签: arrays perl while-loop

我想把这个用户数据输入并把它放到一个数组中,我似乎无法弄清楚如何做到这一点。

#!/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";

1 个答案:

答案 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";

在这里,您只需对数组进行排序,然后使用第一个和最后一个元素。