A basic challenge of iterators
sub mymap(@list, &block) {
my $i = 0;
my @result;
while $i < @list.elems {
push @result, &block(@list[$i]);
$i = $i + 1;
}
@result;
}
What happens if called as ...?
mymap($file.lines, &block)
@list ends up holding all of the lines read from $file
mymap isn't acting like a pipeline filter