[Vienna-pm] kleine Frage

Thomas Klausner domm at zsi.at
Fri Oct 31 09:35:57 CST 2003


Hi!

On Fri, Oct 31, 2003 at 04:39:52PM +0100, Baier Oliver MAX SD wrote:

> Ich weiss nicht, ob's nur bei mir so wirkt, aber grep statt
> map scheint besser zu funktionieren, weil's grep mir den
> Wert zurueckliefert und map nur die Anzahl.

1. map gibt immer eine Liste zurueck. Wenn du map aber in Scalarem Kontext
aufrufst
  my $foo=map {} @list;
dann macht Perl was es immer macht, wenn Liste in Scalarem Kontext
aufgerufen werden: Es gibt die Anzahl der Elemente zurueck.

2. map ist eine etwas umgedrehte foreach schleife, die mit allen Elemente
der Ursprungsliste irgendwas macht

3. grep geht ueber eine Liste und gibt nur die Elemente zurueck, fuer die
der zwischen den { } angegeben Code true ergibt.
In skalarem kontext gibt grep aber auch die Anzahl der Elemente zurueck,
weswegen mich deine Beobachtung etwas wundert.

Wenn du nur ein Element mappen/greppen willst:
 ($value)=map {} @list;
(wobei ich das nicht empfehlen kann...)




-- 
#!/usr/bin/perl                               http://domm.zsi.at
for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}



More information about the Vienna-pm mailing list