sub isdef { my($var, $pkg) = ( shift, scalar(caller)."::" ); return unless defined $main::{$pkg}; return unless defined $main::{$pkg}{$var}; return unless defined *{ $main::{$pkg}{$var} }{SCALAR}; return ${ *{ $main::{$pkg}{$var} }{SCALAR} }; }