> > my $x = do { code };
> > works, because do flips the context, expecting a block and
> > returning a value.
>
> I hadn't actually thought of it that way, but it's remarkably well
> explained. Well done.
Thanks!
> > That way I can say
> > my $fh = do { local $_ };
> > open $fh, $file or die $!;
>
> Ah, now that's not quite right. The 'do' block will create a
> local copy of $_, initialised to 'undef'. The end of the block
> returns 'undef' as it is the last executed line, and $_ will
> be restored from its saved value. The line is therefore the
> same as:
>
> my $fh = undef;
>
> or just
>
> my $fh;
>
> and the entire code works as:
>
> open my $fh, $file or die $!;
I goofed. Should have been
my $fh = do { local *_ };
which can be passed to things that are expecting a filehandle, and NOT
a plain scalar.
> > use FileHandle;
> > my $fh = new FileHandle $file or die $!;
>
> If we're counting lines, I think mine wins!
Agreed! Especially in this contrived context, lol....
But thanks for pointing out my goof. I do that *WAY* too much.
Lately I at least try to *run* most of the code snips before I post
them, but sometimes these contrived examples work even though there's a
lot of unnecessary gyration! >:0P
__________________________________________________
Do you Yahoo!?
Yahoo! Shopping - Send Flowers for Valentine's Day
http://shopping.yahoo.com
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]