たまたま Perl のモジュールを漁っていると汎用性が高そうな関数を見つけたためメモ。 #ifndef isGV_with_GP #define isGV_with_GP(x) isGV(x) #endif STATIC bool is_scalar_type(SV *sv) { return !( SvTYPE(sv) == SVt_PVAV || SvTYPE(sv) == SVt_PVHV || SvTYPE(sv) == SVt_PVCV || isGV_with_GP(sv) || SvTYPE(sv) == SVt_PVIO ); } これは PadWalker モジュールのコード。