Exception-Delayed

 view release on metacpan or  search on metacpan

lib/Exception/Delayed.pm  view on Meta::CPAN

use strict;
use warnings;

our $VERSION = '0.002';    # VERSION

sub wantscalar {
    my ( $class, $code, @args ) = @_;
    my $RV;
    eval { $RV = scalar $code->(@args); };
    if ($@) {
        return bless { error => $@ } => $class;
    }
    else {
        return bless { result => \$RV } => $class;
    }
}

sub wantlist {
    my ( $class, $code, @args ) = @_;
    my @RV;
    eval { @RV = $code->(@args); };
    if ($@) {
        return bless { error => $@ } => $class;
    }
    else {
        return bless { result => \@RV } => $class;
    }
}

sub wantany {
    my ( $class, $wantarray, $code, @args ) = @_;
    if ($wantarray) {
        return $class->wantlist( $code, @args );
    }
    else {
        return $class->wantscalar( $code, @args );



( run in 0.313 second using v1.01-cache-2.11-cpan-3b35f9de6a3 )