On Fri, Apr 13, 2007 at 07:43:23PM -0500, brian d foy wrote:
As I was playing around with dirhandles, I thought What if... (which
is actualy sorta fun to do in Pugs, where Perl 5 has everything
documented somewhere even if nobody has read it).
My goal is modest: explain fewer things in the Llama. If dirhandles
were like filehandles, there's a couple of pages of explanation I don't
need to go through.
Witness:
I can iterate through the elements of a named array with [EMAIL PROTECTED]:
my @a = 1 2 3 4 5 ;
for [EMAIL PROTECTED] { .say } # but not = 1 2 3 4 5 :(
and I can read lines from a file:
for =$fh { .say }
Should I be able to go through a directory handle that way too? A yes
answer would be very pleasing :)
my $dh = doc.opendir;
for =$dh { .say }# doesn't work in pugs
And, since we're using objects now, .closedir can really just be
.close, right?
And, maybe this has been already done, but wrapping a lazy filter
around anything that can return items. I'm not proposing this as a
language feature, but if many things shared the same way of getting the
next item, perhaps I could wrap it in a lazy map-ish thingy:
my $general_iterator = lazy_mappish_thingy( doc.opendir );
for =$general_iterator { .say }
$general_iterator.close; # or .end, or .whatever
That last part is definetely not Llama material, but maybe I'll at
least hit the haystack.
One of the things done for Perl 5.10 is to make dirhandles be a little
bit more like filehandles. On OS's that allow it, things like
stat DIRHANDLE
-X DIRHANDLE
chdir DIRHANDLE
all make sense and do what you'd think they'd do.
Steve Peters
[EMAIL PROTECTED]