convert '\t' to "\t"

14/05/2010 - 10:41 von Gerhard | Report spam
Hallo zusammen,

um aus einem Programm heraus eine CSV-Datei auszugeben möchte ich als
Option einen String übergeben, der als Trennungszeichen für die
CVS-Daten benutzt wird.

___ join.pl ___
use Getopt::Std;
my %args;
my @data=qw(go_home choc tel me w);
my $delim="\x0d";
getopts ("d:", \%args) or die "unbekannte Option";
$delim=$args{d} if defined($args{d});

print join($delim, @data),"";
_____________


Beim Aufruf des Programms sollen nun auch die in Perl bekannten Pattern
und Kombinationen hieraus benutzt werden. z.B.
perl join.pl -d"\t"
perl join.pl -d"naechstes Feld"

Leider ist mir nicht klar wie ich !! elegant !! aus dem uebergebenen
String die Pattern korrekt transfomiere, damit das gewünschte Ergenbnis
herauskommt.

Eine Möglichkeit ist nach der Zuweiseung des Pattern (Zeile 6) folgendes
zu machen: $delim=+~s/\//g; Dieses müsste ich dann aber für
\t,,,\f etc. machen. Spàtestens bei \x und \0 wirds dann unschön.

Danke für eure Ideen und Hilfen

Gerhard
 

Lesen sie die antworten

#1 Frank Seitz
14/05/2010 - 12:04 | Warnen spam
Gerhard wrote:

Beim Aufruf des Programms sollen nun auch die in Perl bekannten Pattern
und Kombinationen hieraus benutzt werden. z.B.
perl join.pl -d"\t"
perl join.pl -d"naechstes Feld"

Leider ist mir nicht klar wie ich !! elegant !! aus dem uebergebenen
String die Pattern korrekt transfomiere, damit das gewünschte Ergenbnis
herauskommt.



Packe die Zeile mit der Zuweisung in ein eval.

Grüße
Frank
Dipl.-Inform. Frank Seitz
Anwendungen für Ihr Internet und Intranet | Web-, Datenbank-, Unix-Development
Tel: +49 (0)4103/180301, Fax: -02, Industriestr. 31, D-22880 Wedel

Blog: http://www.fseitz.de/blog

Ähnliche fragen