Yeha. That was just what I needed. Now I get it. What was happening was that, for some reason that now eludes me, I had written one subroutine inside another.
%Params got made in the outer sub. Like a good boy, I was passing arguments from the outer to the inner, even though the inner was within the scope of the outer. BUT, although I passed
\%Params so that in the inner sub I did
my $Params = shift; I was getting values out of it by
$Params{MyKey}. If I'd put the inner sub outside the outer sub, I would have got an error, because
%Params wd have been undefined; but in fact, it just assumed I was being lazy and not passing the argument. But still gave me a warning to help me see the error of my ways. Now when I do
$Params->{MyKey} the error goes away. A spoonful of sugar helps the medicine go down, as they say. Thanks.
§
George Sherston