Hallo zusammen!
Ich habe ein kleines Problem!
Ich muss eine sogenannte Kiste/Platz Nummer mit Perl trennen.
Die Ausgabe wird in einer Textdatei gespeichert.
In dem Programm sind noch mehere Sachen, die funktionieren auch schon.
Die Kiste/Platz Nummer aber noch nicht.
Diese Nummern sehen z.B. so aus 123/456.
Die ersten drei nummern sind für die kiste, die zweiten drei für den platz. die nummern sind mit / getrennt.
Wie schaffe ich es, in der Textdatei zuerst die Kiste nummer, dann einen TAB-absatz und dann die Platz nummer zu schreiben.
Habe es bis jetzt nicht geschafft den / zu erkennen.
Vielen Dank für jeden Beitrag
Hallo
Diese Nummern sehen z.B. so aus 123/456.
Die ersten drei nummern sind für die kiste, die zweiten drei
für den platz. die nummern sind mit / getrennt.
Wie schaffe ich es, in der Textdatei zuerst die Kiste nummer,
dann einen TAB-absatz und dann die Platz nummer zu schreiben.
Habe es bis jetzt nicht geschafft den / zu erkennen.
Was hast Du denn versucht, womit Du es
noch nicht geschafft hast?
Grüße
CMБ
Hallo,
wenn du einen String
my $s = „aa/bbb“
hast, kannst du ihn mittels split trennen:
my @parts = split m///, $s;
Danach besteht dein Array @parts aus den Elementen „aa“ und „bbb“.
Da die Regular expression zwischen m/ und / steht, musst du den slash, den du erkennen willst, vorher mit einen backslash \ maskieren.
Wenn du das umgehen willst, kannst du die regex anders abtrennen:
my @parts = split m#/#, $s;
Mit
join „\t“, @parts
Kriegst du es wieder zusammen, durch einen Tabulator getrennt.
Grüße,
Moritz
Hallo Moritz
wenn du einen String
my $s = „aa/bbb“
hast, kannst du ihn mittels split trennen:
my @parts = split m///, $s;
ist das nicht identisch zu:
my $s = 'aa/bbb';
my @parts = split '/', $s;
Danach besteht dein Array @parts aus den Elementen „aa“ und
„bbb“.
…
Mit
join „\t“, @parts
Kriegst du es wieder zusammen, durch einen Tabulator getrennt.
Am Ende hätte es vielleicht gereicht, wenn er
my $s = 'aa/bbb';
...
$s =~ y{/}{\t};
print $s;
gemacht hätte?
Grüße
CMБ
Hallo,
my @parts = split m///, $s;
ist das nicht identisch zu:
my $s = ‚aa/bbb‘;
my @parts = split ‚/‘, $s;
Right, das ist es. Allerdings steht in der Doku zu `split’, dass es eine regular Expression erwartet, also geb ich ihm eine. Dass Perls Magie das auch mit einem String kann, ist natürlichs schön.
Mit
join „\t“, @parts
Kriegst du es wieder zusammen, durch einen Tabulator getrennt.
Am Ende hätte es vielleicht gereicht, wenn er
my $s =
‚aa/bbb‘;
…
$s =~ y{/}{\t};
print $s;
gemacht hätte?
TIMTOWTDI 
Grüße,
Moritz
Vielen Dank euch beiden für die Hilfe!
Es klappt jetzt so wie ich es brauche.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]