Re: help on Schwartzian method
- From: Jim Gibson <jgibson@xxxxxxxxxxxxxxxxx>
- Date: Tue, 12 Jun 2007 12:26:17 -0700
In article <1181665783.587223.115180@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>, jis
<jismagic@xxxxxxxxx> wrote:
Hi all,
I was reading through UR coloumn by Randal in ww.stonehenge.com. I
cam across the Schwartzian method which I find extremely difficult to
understand even after the explanation given by him.Please help me
understand the concepts.
1)
@data = <>; # read data
foreach (@data) {
($name,$score) = split; # get score
$score{$_} = $score; # record it
}
I guess $_ has the instantaneous data from @data. Am I correct?
Yes. $_ is the default variable for many Perl operations if an explicit
variable is not present.
2)
@pairs = map {
($name, $score) = split;
[ $_, $score ];
} @data;
What is $_ in the ablove code?
$_ is aliased to each element of @data in turn within the block of the
map statement.
Randal says "I build a two-element anonymous list from the
$score and the original value $_". Can somebody help me to understand
what he means?
The construct [ $_, $score ] creates a list of two elements and returns
a reference to that list. The list is "anonymous" because it is not
assigned to a named variable, e.g. such as the variable @list in "my
@list = ($_,$score);". There will be one such list for each element of
@data. The references to all of these anonymous lists will be stored in
the array @pairs.
3)
map { $_->[0] }
sort { $a->[1] <=> $b->[1] }
map { [$_, (split)[1] ] }
<>;
What is $_->[0] all about?
$_ is a scalar variable that contains a reference to a list. $_->[0] is
the first element of that list. It is equivalent to ${$_}[0], but
perhaps a little more readable.
Posted Via Usenet.com Premium Usenet Newsgroup Services
----------------------------------------------------------
** SPEED ** RETENTION ** COMPLETION ** ANONYMITY **
----------------------------------------------------------
http://www.usenet.com
.
- References:
- help on Schwartzian method
- From: jis
- help on Schwartzian method
- Prev by Date: Re: Schwartzian method
- Next by Date: [Fwd: Re: What happened to Getopt::Std ?]
- Previous by thread: help on Schwartzian method
- Next by thread: Schwartzian method
- Index(es):