use Scalar::Does; if (does $val, "HASH") { ... }