Mooseを使い始めたばかりです。
単純な通知オブジェクトを作成していますが、入力が「Eメール」タイプであることを確認したいと思います。(今のところ、単純な正規表現の一致は無視してください)。
ドキュメントから、次のコードのように見えるはずだと思います。
# --- contents of message.pl --- #
package Message;
use Moose;
subtype 'Email' => as 'Str' => where { /.*@.*/ } ;
has 'subject' => ( isa => 'Str', is => 'rw',);
has 'to' => ( isa => 'Email', is => 'rw',);
no Moose; 1;
#############################
package main;
my $msg = Message->new(
subject => 'Hello, World!',
to => 'coolkids@example.com'
);
print $msg->{to} . "\n";
しかし、次のエラーが発生します。
「サブタイプ'Email'」の近くのmessage.pl5行目で演算子が予期した場所に文字列が見つかりました (サブタイプを事前に宣言する必要がありますか?) 「as'Str'」の近くのmessage.pl5行目で演算子が期待する場所に文字列が見つかりました (として事前に宣言する必要がありますか?) 「サブタイプ'Email'」の近くのmessage.pl5行目の構文エラー エラー後のBEGINは安全ではありません--message.plの10行目でコンパイルが中止されました。
MooseでカスタムEメールサブタイプを作成する方法を知っている人はいますか?
Moose-バージョン:0.72 perl-バージョン:5.10.0、プラットフォーム:linux-ubuntu 8.10