Bestenfalls gibst du kein Array zurück sondern eine Referenz darauf, dann kannst du ganz gewöhnlich darauf zugreifen, ohne dass die Daten doppelt im Speicher abgelegt werden.
sub readFile {# ...
return \@array;
}
my $arrayref = readFile($file);
# 1. Element ausgeben
printf("%s\n", $arrayref->[0]);
# letzte Element ausgeben
printf("%s\n", $arrayref->[-1]);
# Indexnr. des letzten Elements
printf("%d\n", $#{$arrayref});
print ( $#(readFile ("C:/Test.txt")) );
Die korrekte Syntax wäre
print ( $#{readFile ("C:/Test.txt")} );
die liefert jedoch auch nicht den richtigen Wert da du in Wirklichkeit kein Array zurück gibst sondern eine Liste.
Eine Möglichkeit die Anzahl der zurückgegebenen Elemente on-the-fly zu bestimmt
my $anzahl = scalar readFile ("C:/Test.txt");
Aber warum würde man so etwas machen wollen, sehe da keinen wirklichen nutzen drin.
Datum: 14.03.2007-13:04
