From:                   "Jonathan E. Paton" <[EMAIL PROTECTED]>

> > One is called the 'big' arrow (=>) and one is called
> > the 'little' arrow (->).
> 
> Like Little Horn and Big Horn from the old westerns?  ;-)
> 
> > The big arrow is used in place of a ',' (comma).  Now,
> > I just read in the latest Learning Perl that this is
> > global (i.e..: you can replace ANY comma with it, but
> > I may have misunderstood, have to re-read that again),
> 
> Almost, the following is valid:
> 
> my $couple = join " & " => qw(Husband Wife);

I think the nicest example is

        use File::Copy;
        cope $source => $destination;

;-) Sometimes the code looks more readable if you replace a 
comma by a "big" arrow (I hear the term for the first time.)

> however, you'll note swapping the big arrow for a comma
> doesn't quite work for a hash:
> 
> my %hash = ( big city,    'New York', 
>              Little City, 'Mayberru'
>            );

Well .. not sure what did you want to show by that example.

If it was

 my %hash = ( BigCity,    'New York', 
              LittleCity, 'Mayberru'
            );

the I would. In such case the difference between => and comma 
really matters. Not only that the code above will "work" only if you 
don't "use strict", but it'll also go crazy if you ever define a function 
BigCity.

> A better example is the closure:
> 
> my $sub = sub { print "Hello " . shift . "\n" };
> $sub->("World");

This is merely an anonymous subroutine.

Really nothing different from

        sub foo { print "Hello " . shift . "\n" };
        my $sub = \&foo;
        $sub->("World");

This would be a closure:

        sub genClosure {
                my $greeting = shift();
                return sub { print $greeting " . shift . "\n" };
        }
        my $sub = genClosure('Hello');
        $sub->("World");

You see the subroutine referenced by $sub "remembers" the value 
of $greeting at the time it was created.

Jenda

=========== [EMAIL PROTECTED] == http://Jenda.Krynicky.cz ==========
There is a reason for living. There must be. I've seen it somewhere.
It's just that in the mess on my table ... and in my brain.
I can't find it.
                                        --- me

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to