in reply to Ah, the old "Can't use string ("string") as a HASH ref"

Basically what you claim to be doing shouldn't produce this error. You'd be getting this error if you were calling
Green::updateRec(%A­RGS)
(no backslash in front of $ARGS). So a few possibilities: One thing I can tell is that you are clearly either passing %ARGS as a hash (not a reference) or you are doing something between the
sub updateRec { $new = shift @_;
somewhere along the lines of
$new = (%$new);
Or, in other words: loading $new with one of the keys in the hash %$new. It'd be a lot easier to make this mistake in your parameter passing, though... so I'd look there first.

One other question: are you really not using strict?

sub updateRec { my $new = shift @_;

------------
:Wq
Not an editor command: Wq