내 질문에 Perl : 값 목록을 허용하는 서브 루틴으로 Perl 스크립트를 작성하고 호출 프로그램에 가장 큰 값, 가장 작은 값 및 평균값을 반환합니다.Perl 서브 루틴을 사용하는 숫자의 최대, 최소, 평균
#!/usr/bin/perl
sub large_and_small {
my (@numbers);
@numbers = @_;
my ($small, $large);
$large = $numbers[0];
$small = $numbers[0];
foreach my $i (@numbers) {
if ($i > $large) {
$large = $i;
}
elsif ($i < $small) {
$small = $i;
}
}
return ($small, $large);
}
sub avg {
my ($avg);
my ($total);
foreach (@test_array) {
$total += $_;
}
$avg = $total/scalar @test_array;
return $avg;
}
my (@test_array, @ret);
@test_array = (15, 5, 7, 3, 9, 1, 20,1 3, 9, 8, 15, 16, 2, 6, 12, 90);
@ret = large_and_small(@test_array);
print "The Largest value is ", $ret[1], "\n";
print "The Smallest value is ", $ret[0], "\n";
print "The Average value is", avg(@test_array), "\n";
내가 얻고 출력은 다음과 같습니다
The Largest value is 90
The Smallest value is 1
Illegal division by zero at /tmp/135044395416028.pl line 59.
어디 스크립트에서 잘못된 것입니까? 제발 도와주세요. 미리 감사드립니다.
항상 'use strict; 경고를 사용하라. !! – ikegami