Der m//-Operator im Listenkontext

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

my ($wday, $month, $mday,
      $hour, $minute, $second, $timezone, $year) =
   m{
      (\w+)                   # Mon, Tue, ...  --> $wday
      \s
      (\w+)                   # Jan, Feb, ...  --> $month
      \s+
      (\d{1,2})               # 1 .. 31        --> $mday
      \s+
      (\d{2}):(\d{2}):(\d{2}) # 23:27:41       --> $hour...
      \s
      (\w+(?:\s\w+)*?)        # MET DST or GMT --> $timezone
      \s
      (\d{4})                 # 1998           --> $year
   }x;

*Während der m//-Operator im skalaren Kontext nur zurückliefert, ob der reguläre Ausdruck zutrifft, werden im Listenkontext $1, $2 usw. als Liste zurückgeliefert.
 
*Im skalaren Kontext wird überhaupt erst keine Liste erzeugt und entsprechend entweder 0 oder 1 zurückgeliefert und nicht etwa die Länge der Liste, die im Listenkontext zurückgeliefert worden wäre.
 
*split kann eine sehr gute Alternative sein -- insbesondere, wenn die Anzahl der herauszupickenden Felder nicht bekannt ist.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003