2009-12-31T10:46:22
GwenDragonIn deinem Beispiel gibst du ja durch die Pipe etwas an date weiter! Du willst doch date auslesen oder?
Hmm, stimmt das habe ich gar nicht genau beachtet. Ich möchte mal die auswirkung genauer erklären die es hat, weil du es nicht getan hast. ;)
Nach mehrmaligen ausführen ist mir übrigens auch aufgefallen das "hallo" mal vorne mal hinten steht.
Zur erklärung. Mit "|date" wird wie GwenDragon bereits sagte zwar date aufgerufen, es wird aber etwas zur Pipe als zu "date" übergeben. Ansonsten hat eine Pipe generell den Effekt das sie asynchron zum Programm läuft. Genauer gesagt wenn du eine Pipe aufrufst forkt perl im Hintergrund und es entsteht einen weiterer Parallel laufender Prozess.
Durch den aufruf von "<DATE>" rufst du deinen Prozess dann letztendlich auf, und dieser startet im hintergrund "asynchron" das kommando "date", danach gibst du hallo aus.
Da es nunmal asynchron läuft kann es also durchaus sein das date vor oder nach dem "hallo" aufgerufen wird. Eben zufällig. Ansonsten capturest du auch mit "<DATE>" nicht die ausgabe sondern es wird "date" einfach nur aufgerufen und "date" selber gibt parallel zu deinem laufenden Perl Prozess das Datum aus. Dadurch also der Effekt das es mal zuerst mal vor mal hinter "hallo" steht.
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de