ady has asked for the wisdom of the Perl Monks concerning the following question:
where### Iterate.pl use strict; use warnings; use Iterator_Utils; # --------------------------------------------------------- sub interesting_files { my $is_interesting = shift; my @queue = @_; return Iterator { while (@queue) { my $file = shift @queue; if (-d $file) { opendir my $dh, $file or next; my @newfiles = grep {$_ ne "." && $_ ne ".."} readdir $dh; push @queue, map "$file/$_", @newfiles; } return $file if $is_interesting->($file); } return; }; } # -------------------------------------------------------- sub $is_WrappedXml { my $file = shift; return 1 if $file =~ /WrappedXml.{0,5}\.xml/i; return; } # -------------------------------------------------------- # MAIN my $WrappedXml_file = interesting_files(\$is_WrappedXml, '.'); while (defined($file = NEXTVAL($WrappedXml_file))) print $file; }
When running program Iterate.pl i get the error:### Iterator_Utils.pm package Iterator_Utils; use base Exporter; @EXPORT_OK = qw(NEXTVAL Iterator); %EXPORT_TAGS = ('all' => \@EXPORT_OK); sub NEXTVAL { $_[0]->() } sub Iterator (&) { return $_[0] } 1;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: HOP Iterator Ex4.3-- Illegal declaration
by Fletch (Bishop) on Mar 03, 2006 at 15:42 UTC | |
by ady (Deacon) on Mar 03, 2006 at 15:46 UTC | |
by ady (Deacon) on Mar 03, 2006 at 15:53 UTC |