Schrift
[thread]12826[/thread]

perlrun -p



<< >> 7 Einträge, 1 Seite
Gast Gast
 2008-11-26 10:40
#116609 #116609
Hallo!

Im Beginnerforum von perl.org habe ich dieses Beispiel gesehen:

Code: (dl )
echo "<PerlNotesOnXML>" | perl -pe's/(?<=[a-z])(?=[A-Z])/ /g'


Mit der Option "-p" kann ich z.B. eine als Argument übergebene Datei zeilenweise lesen und drucken.

Wie funktioniert -p hier mit einem String?
Crian
 2008-11-26 11:10
#116611 #116611
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
Was meinst du genau mit String hier?
Per Echo und mit dem Pipe wird eine temporäre Datei mit einer Zeile erzeugt.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Gast Gast
 2008-11-26 11:44
#116614 #116614
Danke!
betterworld
 2008-11-26 11:57
#116615 #116615
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Crian+2008-11-26 10:10:08--
Per Echo und mit dem Pipe wird eine temporäre Datei mit einer Zeile erzeugt.

Das mit der temporären Datei passiert aber glaube ich nur unter Windows, oder? Woanders wird das stdout von echo halt (mehr oder weniger) direkt an das stdin von perl gekoppelt.

Zum Schreiben in Dateien sollte man -p imho mit Vorsicht genießen, da es beim Schreiben nicht auf Fehler prüft, jedenfalls in allen von mir getesteten Perlversionen.
Crian
 2008-11-26 15:39
#116621 #116621
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
Auf jeden Fall wird es wie eine Einzeilige Datei behandelt, oder?
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
GwenDragon
 2008-11-27 11:15
#116654 #116654
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Nein, eher wie ein Datenstrom aus einzelnen Zeichen.
Eine Pipe (Röhre, Leitung) soll das genau darstellen; so haben sich damals die Unix-Leute das gedacht.
Crian
 2008-11-27 13:05
#116659 #116659
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
Ja, wobei allerdings der Zeilentrenner genau das bleibt. Da keiner drin ist, kommen die Zeichen dann als "einzeilige Datei" an.

Vermutlich ist das mehr philosophisch, und wir meinen das gleiche.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 7 Einträge, 1 Seite



View all threads created 2008-11-26 10:40.