my ($largest, $smallest) = (-9e9,9e9); # initialize to the wrong extremes
...
for my $v (@array) { # [anonymous monk]'s [id://1203660]: single pass through loop, without sorting; more efficient than brostad's single sort
$largest = $v if $v > $largest;
$smallest = $v if $v < $smallest;
}
####
c:\@Work\Perl\monks>perl -wMstrict -le
"my @array = (-9e9-123, -9e9-234);
;;
my ($largest, $smallest) = (-9e9, 9e9);
;;
for my $elem (@array) {
$largest = $elem if $elem > $largest;
$smallest = $elem if $elem < $smallest;
}
print qq{smallest: $smallest; largest: $largest};
"
smallest: -9000000234; largest: -9000000000
####
c:\@Work\Perl\monks>perl -wMstrict -le
"my @array = (-9e9-123, -9e9-234);
;;
my ($largest, $smallest) = ($array[0], $array[0]);
;;
for my $elem (@array) {
$largest = $elem if $elem > $largest;
$smallest = $elem if $elem < $smallest;
}
print qq{smallest: $smallest; largest: $largest};
"
smallest: -9000000234; largest: -9000000123