AW: [Vienna-pm] kleine Frage

Baier Oliver MAX SD BaierO at spardat.at
Mon Nov 3 03:57:23 CST 2003


> -----Ursprüngliche Nachricht-----
> Von: Thomas Klausner [mailto:domm at zsi.at]
> Betreff: Re: [Vienna-pm] kleine Frage
> 
> 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...)

Hi!

Stimmt, in diesem Beispiel verwende ich

  (my $count) = grep {chomp;s#Matches: ##} <PID>;

Ich nehme an, der Grund, warum du das nicht empfehlen kannst,
liegt an der allgemeinen Unsicherheit, ob wirklich nur ein
Listenelement von grep retourniert wird. In meinem Fall
allerdings kann ich mit Sicherheit davon ausgehen, weil der
Output wiederum von einem anderen Perl-Script kommt, das
nur 1 Ergebnis liefert.

Habe uebrigens in "Programming Perl" schon gefunden, warum in
meinem Fall nur grep funkt:

  See also grep. map differs from grep in that map returns
  a list consisting of the results of each successive
  evaluation of EXPR, whereas grep returns a list consisting
  of each value of LIST for which EXPR evaluates to true.

lg
Oliver



More information about the Vienna-pm mailing list