Thomas Petermann: Variablen austauschen - Variablenteile zuordnen

Hallo,
mit welchem Befehl tausche ich innerhalb eines strings in Perl einen Punkt mit einem Bindestrich aus.
Also, 20.1.2005 in 20-1-2005

Und wie kann ich die Datumsteile den Variablen Tag, Monat und Jahr zuordnen, also z.B. ist

$datum entspricht 20.1.2005

dies soll aufgespalten werden in

$day = 20
$month = 1
$year = 2005

Danke.

Grüße, Thomas

  1. Hell-O!

    mit welchem Befehl tausche ich innerhalb eines strings in Perl einen Punkt mit einem Bindestrich aus.

    Siehe Suchen und Ersetzen mit Regulären Ausdrücken.

    Und wie kann ich die Datumsteile den Variablen Tag, Monat und Jahr zuordnen, also z.B. ist

    Mit Hilfe von split.

    Siechfred

    1. Suchen und Ersetzen funktioniert nicht, weil der . alles ersetzt und nicht nur den Punkt.

      $datum =~ s/./-/g;
      vorher: 1.1.2006
      nachher: --------

      Noch eine Idee?

      Danke.

      Hell-O!

      mit welchem Befehl tausche ich innerhalb eines strings in Perl einen Punkt mit einem Bindestrich aus.

      Siehe Suchen und Ersetzen mit Regulären Ausdrücken.

      Und wie kann ich die Datumsteile den Variablen Tag, Monat und Jahr zuordnen, also z.B. ist

      Mit Hilfe von split.

      Siechfred

      1. Suchen und Ersetzen funktioniert nicht, weil der . alles ersetzt und nicht nur den Punkt.

        Du solltest die Seite die dir Siechfred gezeigt hat durchlesen, z.b. diesen Abschnit http://de.selfhtml.org/perl/sprache/regexpr.htm#zeichenketten

        Wobei mir aber nicht klar ist, warum du das machen willst.

        Struppi.

        1. Hallo Struppi,

          Du solltest die Seite die dir Siechfred gezeigt hat durchlesen, z.b. diesen Abschnit http://de.selfhtml.org/perl/sprache/regexpr.htm#zeichenketten

          der darauf folgende wäre für den OP ebenfalls nützlich.

          Wobei mir aber nicht klar ist, warum du das machen willst.

          mir auch nicht ganz. Wenn Thomas schon mit split das Datum zerlegt hat, könnte er es auch mit join und dem geeigneten Trennzeichen in der gewünschten Form wieder zusammensetzen.

          Freundliche Grüße

          Vinzenz

      2. Suchen und Ersetzen funktioniert nicht, weil der . alles ersetzt und nicht nur den Punkt.

        $datum =~ s/./-/g;
        vorher: 1.1.2006
        nachher: --------

        Noch eine Idee?

        Danke.

        Ja:

        $datum =~ s/./-/g;

        Den "." mußt Du "escapen". Das escape-Zeichen ist der "". Den benutzt Du auch bei:
        $
        ^
        *
        []
        ()
        +

        usw.

        Gruß

        Hans