PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` use strict; use warnings; package Class::Load::PP; our $VERSION = '0.25'; use Module::Runtime (); use Package::Stash 0.14; use Scalar::Util (); use Try::Tiny; sub is_class_loaded { my $class = shift; my $options = shift; my $loaded = _is_class_loaded($class); return $loaded if ! $loaded; return $loaded unless $options && $options->{-version}; return try { $class->VERSION($options->{-version}); 1; } catch { 0; }; } sub _is_class_loaded { my $class = shift; return 0 unless Module::Runtime::is_module_name($class); my $stash = Package::Stash->new($class); if ($stash->has_symbol('$VERSION')) { my $version = ${ $stash->get_symbol('$VERSION') }; if (defined $version) { return 1 if ! ref $version; # Sometimes $VERSION ends up as a reference to undef (weird) return 1 if ref $version && Scalar::Util::reftype $version eq 'SCALAR' && defined ${$version}; # a version object return 1 if Scalar::Util::blessed $version; } } if ($stash->has_symbol('@ISA')) { return 1 if @{ $stash->get_symbol('@ISA') }; } # check for any method return 1 if $stash->list_all_symbols('CODE'); # fail return 0; } 1;