|
|
 |

|

 |

| Community » Perl: Allgemeines Forum |
|
Ein einfaches Programm...
|
Seitenanfang |
...aber ich verstehe es trotzdem nicht ganz. Ich will eine Liste von Worten von der Standardeingabe in ein array schreiben lassen und dieses dann umgekehrt ausgeben. Dazu benutze ich folgenden 3-Zeiler@test= <STDIN>; @test= reverse(@test); print "@test"; Die Eingabezeilen trenne ich mit ENTER, die gesamte Eingabe beende ich mit CTRL+D. Es funkioniert auch, hat allerdings eine kleine Macke. Alle Inhalte des arrays, ausser dem ersten haben vor ihrer Ausgabe noch ein Leerzeichen, etwa so: EINGABE: eins zwei AUSGABE: zwei eins Woran liegt das? Schöne Grüße, Martin
Datum: 10.05.2007-12:18

|
re: Ein einfaches Programm...
|
Seitenanfang |
Liegt an der Ausgabe, ein Array in einen double-quoted String ("@array") wird interpoliert, bei der Interpolation werden die Arraywerte mit dem Wert der Variablen $" konkateniert (zusammengesetzt). Das heiszt der Code
print "@array";
ist gleichzusetzten mit
print join $", @array;
$" ist standardmaeszig auf das Leerzeichen gesetzt.Noch ein Beispiel
{ local $" = ', '; my @array = qw(aaa bbb ccc); print "@array"; }
ergibt
aaa, bbb, ccc
Die geschweifen Klammern und das 'local' sind notwendig damit $" nur fuer diesen Codeblock und nicht fuer das gesamte Programm veraendert wird, das koennte naemlich zu Fehlverhalten in anderen Programmstuecken fuehren, also vorsichtig mit der Aenderungen solcher Variablen sein.Schreib die Ausgabe mal so:
print $_ for @test;
Datum: 10.05.2007-15:37

|
|

|

|

|
 |

|

|
|