in reply to List::MoreUtils and require

As others have pointed out, this is indeed a problem with prototypes and loading the module at runtime via 'require'. There is no fix for it. What I can possibly do is add some argument checking to each_array making sure that it actually receives references to arrays. However, this is error-prone in a case like this, where the arrays contain array-refs themselves:
my @ary1 = ( [1, 2], [3, 4]); my @ary2 = ( [4, 5], [6, 7]); my $ea = List::MoreUtils::each_array(@ary1, @ary2);
The correct solution for this problem here is to use each_arrayref, and passing in explicit references: my $ea = List::MoreUtils::each_arrayref(\@ary1, \@ary2); This is no longer as idiomatic, unfortunately. I will add a note to the documentation about this in the next reAs others have pointed out, this is indeed a problem with prototypes and loading the module at runtime via 'require'. There is no fix for it. What I can possibly do is add some argument checking to each_array making sure that it actually receives references to arrays. However, this is error-prone in a case like this, where the arrays contain array-refs themselves:
my @ary1 = ( [1, 2], [3, 4]); my @ary2 = ( [4, 5], [6, 7]); my $ea = List::MoreUtils::each_array(@ary1, @ary2);
The correct solution for this problem here is to use each_arrayref, and passing in explicit references:
my $ea = List::MoreUtils::each_arrayref(\@ary1, \@ary2);
This is no longer as idiomatic, unfortunately. I'll add a warning about this problem in the next release.