Ho appena iniziato a lavorare con Moose e ho incontrato uno strano problema che non riesco a capire. Il codice seguente:Comportamento anomalo con Moose, Try :: Tiny e 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";
produce:
Can't call method "x" on an undefined value at m2.pl line 19.
Tuttavia, se sostituisco Try::Tiny
con TryCatch
, agisce come Supporrei dovrebbe:
oops
Anche se x
è il il valore corretto, ad esempio 5
, Try::Tiny
produce ancora l'errore undefined value
.
Poiché tutta la documentazione di Moose che ho letto utilizza Try::Tiny
, sono molto confuso sul motivo per cui questo codice non funziona. Sto facendo qualcosa di completamente sbagliato qui?
Gah, un aspetto imbarazzante. Grazie! – Joe
+1 per l'uso fantastico di * stanza *. – FMc