in reply to Re^3: if not defined
in thread if not defined

The OP wants

if (!defined($pname) && $pname ne '')

really?

For one, we have

>perl -w -e "print 1 if !defined($pname) && $pname ne ''" Use of uninitialized value in string ne at -e line 1.
While

not defined($pname) && $pname ne ''

if, and only if

! defined($pname) || $pname eq ''

Which looks perfectly reasonable in a test like

if (!defined($pname) || $pname eq '') { croak 'We want something real in $pname. Not undef or the empty st +ring'; }