package Iterator_Utils; use base Exporter; use strict; @EXPORT_OK =qw(NEXTVAL Iterator append imap igrep iterate_function filehandle_iterator list_iterator); %EXPORT_TAGS = ('all' => \@EXPORT_OK); sub Iterator (&) { return $_[0] } # 'syntactic sugar' to allow using 'Iterator { ... }' vice # 'Iterator { sub( ...) }' see Dominius, Higher Order Perl, p. 123 sub NEXTVAL { $_[0]->()