package MyCompay::Result; use Moose; has '_status' => ( is => 'rw', isa => 'Str', ); sub success { my($self, $arg) = @_; if( defined $arg ) { $self->_status( (!!$arg) ? 'success' : undef ); } return ( 'success' eq $self->_status() ); } sub error { my($self, $arg) = @_; if( defined $arg ) { $self->_status( (!!$arg) ? 'error' : undef ); } return ( 'error' eq $self->_status() ); } sub pending { my($self, $arg) = @_; if( defined $arg ) { $self->_status( (!!$arg) ? 'pending' : undef ); } return ( 'pending' eq $self->_status() ); } 1;