構築Perlには列挙型がありますか?、サブルーチン引数が正しい型の列挙型を取得していることを動的型チェック(またはuse strictで実行できる場合は静的型チェック)を実行するにはどうすればよいですか?
package Phone::Type;
use constant {
HOME => 'Home',
WORK => 'Work',
};
package main;
sub fun
{
my ($my_phone_type_enum) = @_;
# How to check my_phone_type_enum, is either Phone::Type->HOME or Phone::Type->WORK or ... but not 'Dog' or 'Cat'?
}
fun(Phone::Type->HOME); # valid
fun(Phone::Type->WORK); # valid
fun('DOG'); # run-time or compile time error