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]