Ich versuche, mich Perl beizubringen, und ich habe überall nach einer Antwort auf, was wahrscheinlich ein sehr einfaches Problem ist. Ich habe ein Unterprogramm definiert, das ich anrufe, um die Anzahl der Buchstaben in einem Wort zu zählen. Wenn ich es so schreibe:Anfänger rufen ein Perl-Unterprogramm
$sentence="This is a short sentence.";
@words = split(/\s+/, $sentence);
foreach $element (@words) {
$lngths .= length($element) . "\n";
}
print "$lngths\n";
Dann funktioniert es wie ein Charme. Wenn ich es jedoch in eine Subroutine einpacke, teilt Split die Eingabe nicht auf und zählt stattdessen den ganzen Satz als eine einzelne Eingabe. Hier ist, wie ich die Definition der Unterprogramm:
sub countWords {
@words = split(/\s+/, @_);
foreach $element(@words) {
$lngths .= length($element) . "\n";
}
return $lngths;
}
Von allen Seiten, die ich gelesen habe und Texte, die ich konsultiert habe dies funktionieren sollte, aber es funktioniert nicht.
Vielen Dank im Voraus!
Das Beste, was Sie sofort tun können, um das Lernen von Perl zu fördern ist * immer * enthalten 'Verwendung streng; Verwenden Sie Warnungen; 'am Anfang jeder Datei. – Ether