Hier die Routine:
(Ziel: Zeilen weiter zerlegen, wenn mind. 45 Stellen)sub addtext
{
my $zeile = shift;
my @textneu = shift;
Hier ist der Fehler. shift gibt immer den nächsten Skalar zurück, was bei dir eben immer das "*" ist. Folgende Möglichkeiten:
-
my @textneu = @_;
$zeile ist aus dem Parameter-Array durch das vorhergehende shift entfernt worden, so das nur noch das benötigte @text drin steht. -
oder du arbeitest mit Referenzen. also
my @textneu = @{shift()};
und der Aufruf erfolgt dann über
@text = addtext ($_, @text);
Diese Variante ist dann brauchbar, wenn du evtl. mal nach dem Array noch einen dritten Parameter übergeben willst.
if (length($zeile) < 45)
{
push(@textneu,$zeile);
}
else
{
# noch nicht realisiert
}
return(@textneu);
} # Ende sub addtext
Wünsche frohes Schaffen.