in reply to Use of uninitialized value in string

You may have already tried this, but when I've run into this kind of test, I end up writing the clunky:

... if ( defined $args->{err} and $args->{err} ) { print "There is a problem : $args->{err}\n"; } ...
Which bugged me in perl ~5.6. DWIM gone awry, me thinks.

HTH

-Ducky