私はMooseの作業を開始したばかりで、わからない奇妙な問題に遭遇しました。次のコード:Moose、Try :: Tiny、TryCatchで奇妙な動作が発生する
#!/usr/bin/env perl
use strict;
use warnings;
use Try::Tiny;
{
package Foo;
use Moose;
has x => (is => 'ro', isa => 'Int');
}
my $f;
try {
$f = Foo->new(x => 'x');
} catch {
die "oops\n";
}
print $f->x . "\n";
は生成します。
Can't call method "x" on an undefined value at m2.pl line 19.
を私はTryCatch
でTry::Tiny
を交換する場合は、それは私はそれが必要引き受けるとして機能:
oops
x
がある場合でも、正しい値、たとえば5
、Try::Tiny
はまだundefined value
エラーを生成します。
私が読んでいるすべてのMooseドキュメントはTry::Tiny
を使用していますが、なぜこのコードが動作しないのか非常に混乱しています。私はここで何か完全に間違っているのですか?
ガー、恥ずかしい見落とし。ありがとう! – Joe
+1 *スタンザ*の素晴らしい使用のために。 – FMc