I'm trying to make some changes to a module, and thought that for version comparison, I could take advantage of List::MoreUtils's each_array function. However, not needing List::MoreUtils in all cases, I thought I'd just require it only when needed. No go. First, the code. The original is a mess, and not even mine, so I'm not going to finger the guilty party. However, I did get it down to a nice, small test case.
If you run this, and your system has the same problem as mine, you'll get:#!/usr/bin/perl use strict; use warnings; require List::MoreUtils; # use List::MoreUtils (); my @v1 = qw(4 0 0 3); my @v2 = qw(4 0 0 3); my $ea = List::MoreUtils::each_array(@v1, @v2); while (my ($v, $t) = $ea->()) { }
If, however, you switch it to use, even explicitly importing nothing (which I think is the default anyway), the seg fault goes away.$ perl ./tst.pl Segmentation fault
Switching to use the pure-perl implementation may fix this as well - but that seems like as much of a work-around as just using use.
Can anyone confirm that this is a general problem, and not just my machine?
In reply to List::MoreUtils and require by Tanktalus
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |