package foo; package bar; package main; sub package_exists { my ($package) = @_; return exists {%::}->{$package . '::'}; } for (qw(foo bar quux)) { print "$_ ok\n" if package_exists $_; } __END_ foo ok bar ok