Tomas, > Something is saying: > > Class::MOP::load_class($_) for qw/Class1 Class2 Class3/; > > As $_ is aliased (being a special variable), then stamping on it causes bad > things to happen. > > Loading one of your classes (or a class that it needs) ends up stamping on > $_, ergo causing everything to go hideously hideously wrong. > > That's my guess anyway...
Well, I think I may have found it ... I had neglected to check Moose versions on our QA environment, where we couldn't reproduce the problem at all. We did that today and found this: perl -MMooseX::Declare -le 'no strict qw<refs>; our $ver = "${_}::VERSION" and print "$_ :: $$ver" foreach qw<Moose MooseX::Declare Class::MOP Devel::Declare>' Moose :: 1.01 MooseX::Declare :: 0.33 Class::MOP :: 1.01 Devel::Declare :: 0.005011 So it looks to me like, whatever the "0.pm" problem is--probably something borking $_ as Tomas surmises above--something between CMOP 0.98 and 1.01 fixed it. We're going to upgrade everything across the board and hopefully that'll be the end of it. Just wanted to post back here for the benefit of lurkers or for you diehard Mooseheads to file away for when the next newbie comes callin'. :-) Thanx everyone for your help! -- Buddy