Ich bin relativ neu in Perl und ich möchte nicht die List::Utilmax
Funktion verwenden, um den maximalen Wert eines bestimmten Arrays zu finden.Warum gibt meine Perl max() -Funktion immer das erste Element des Arrays zurück?
Wenn ich den folgenden Code teste, gibt es nur den ersten Wert des Arrays zurück, nicht das Maximum.
sub max
{
my @array = shift;
my $cur = $array[0];
foreach $i (@array)
{
if($i > $cur)
{
$cur = $i;
}
else
{
$cur = $cur;
}
}
return $cur;
}
Jetzt, da Sie gelernt haben, max() zu implementieren, verwenden Sie List :: Util's max(). Es wird schneller sein und weniger Bugs haben. – Schwern
Gibt es einen besonderen Grund, warum Sie Lists Utils 'max' nicht benutzen wollen/können? –
Nur ein Tipp: 'else {$ cur = $ cur}' tut gar nichts, also entferne es. Variablen vergessen ihre Werte nicht, nur weil du sie diesmal nicht durch eine Schleife benutzt hast :) – hobbs