Loop version 1.00
=================
Loop - Smart, Simple, Recursive Iterators for Perl programming.
use Loop;
Loop::Array @array, sub
{
my ($index,$value)=@_;
print "at index '$index', value='$value'\n";
}
Loop subroutines are included for Arrays, Hashes, and Files.
All looping routines support 'last' and 'redo' control flow.
All looping routines support a "map" style syntax,
similar to the "map" perl function, where the loop can
return a Scalar or List, and whatever is returned is
accumulated into a list and returned by the Loop call.
This example will return a list of keys that are contained
in their corresponding value.
my %hash = qw
(
aaa bebaaa
abc xyz
root taproot
oingo boingo
billy bob
);
@key_is_in_value = Loop::Hash %hash, sub
{
my($key,$val)=@_;
if($val=~/$key/)
{return $key;}
else
{return;}
};
Hashes can have nested loops, which avoids the perl builtin
"each" problem of having a place holder for only one iterator.
Files can be looped through providing a quick and easy way
to open, read, and close a file, including error handling,
and providing the current line number.
# print first 10 lines of file, along with each line's line number.
Loop::File "tfile.pl", sub
{
my($linenum,$linestr)=@_;
print "$linenum \t: $linestr";
$_[-1]='last' if ($linenum == 10);
};
INSTALLATION
To install this module type the following:
perl Makefile.PL
make
make test
make install
DEPENDENCIES
none
COPYRIGHT AND LICENCE
Copyright (C) 2003 Greg London, All Rights Reserved
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.