Thema: Perl - Frage
Einzelnen Beitrag anzeigen
Alt 04.10.2002, 18:46   #2
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

map erwartet eine expression und eine Liste als Parameter, wobei die Espression auf jeden Wert der Liste angewendet wird.
Die Expression steht innerhalb der {} - die Liste ist das "(1..8)".

IMHO ist bei "rand @zeichen" das "@zeichen" unnötig und könnte durch "62" ersetzt werden, da @arryname im skalaren Kontext die Länge des Arrays zurückliefert.

Jedenfalls wird "rand 62" 8 mal aufgerufen => es entsteht eine liste (array) aus 8 Kommazahlen.

Die Notation @array[index1, index2, ....] beschreibt einen Bereich (slice) eines Arrays. z.b würde "@array[1,2,5]" eine Liste (Array) bestehend aus dem ersten, zweiten und fünften Element das Arrays @array zurückliefern.
Genauso ist es in diesem Fall. Die Kommastellen der 8 Kommazahlen werden abgeschnitten und stellen somit eine Liste von 8 Indexwerten dar, über die 8 Elemente des Arrays @zeichen ausgewählt werden und als Liste (array) zurückgekliefert werden.
Mit join macht man dann aus dem Array noch einen String.

Alles klar?
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten