Subject: | Use of unescaped :: in string |
This module’s tests fail before 5.18 and now in bleadperl, because of an inadvertent change in 5.18 (now reverted) that changed the interpolation of "$foo::$bar". It previously meant $foo::.$bar, but in 5.18-24 means $foo."::".$bar.
These lines (in version 1.10) are affected:
$ ack '\w::\$' lib
lib/Tie/SecureHash.pm
180: my @candidate_keys = map { "$_::$key" } @isa;
412: return exists $self->{fullkeys}->{"$caller::$key"};
Elsewhere in the same module "${caller}::..." is used. But you could use \:: or :\:. (I prefer :\: because it’s more exotic, but still readable. :-)