Thread Zeilenumbruch für foreach (7 answers)
Opened by Gast at 2007-08-01 00:41

PerlProfi
 2007-08-01 01:17
#97011 #97011
User since
2006-11-29
340 Artikel
BenutzerIn
[default_avatar]
Ich sehe das Problem noch in der Logik: In einen String schreibst du Text ( mit mehreren Zeilenumbrüchen ) und diesen übergibst du dann einer Funktion, in welcher du erwartest, dass du nicht nur einen String bekommst sondern mehrere ( die Zeilen der Programmausgabe ).

Wieso benutzt du nicht ein Array und übergibst diesen an deine Funktion:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
my @rows;
while ( my $line = <PROC> ) {
chomp($line);
if ( /marke/ ) {
print "marke";
}
elsif ( /marke2/ ) {
push( @rows, $line);
}
else {
my_function(@rows);
}
}


Und deine Funktion könnte dann so aufgebaut sein wie strat schon geschrieben hat.

MfG

edit: die 3. antwort war nioch nicht da als ich das hier geschrieben habe...
Sie dir mal an was strat geschrieben hat, $_[0] ist der 1. übergebene Parameter, nicht @_[0], @_[0] ist ein Arrayslice. (bei einem Element kommt halt das selbe raus)
Deine Ausgabe ist ganz normal. Du übergibst eben nur einen String keinen Array.
Falls du keinen Array benutzen willst musst du eben deinen String splitten.

View full thread Zeilenumbruch für foreach