/ erkennen

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 :wink:

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]