The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Data::Object::Role::Tryable

ABSTRACT

Tryable Role for Perl 5

SYNOPSIS

  package Example;

  use Moo;

  with 'Data::Object::Role::Tryable';

  package main;

  use routines;

  my $example = Example->new;

DESCRIPTION

This package provides a wrapper around the Data::Object::Try class which provides an object-oriented interface for performing complex try/catch operations.

METHODS

This package implements the following methods:

try

  try(CodeRef | Str $method) : InstanceOf['Data::Object::Try']

The try method takes a method name or coderef and returns a Data::Object::Try object with the current object passed as the invocant which means that try and finally callbacks will receive that as the first argument.

try example #1
  # given: synopsis

  my $tryer = $example->try(fun(@args) {
    [@args]
  });

  # $tryer->result(...)
try example #2
  # given: synopsis

  my $tryer = $example->try(fun(@args) {
    die 'tried';
  });

  $tryer->default(fun($error) {
    return ['tried'] if $error =~ 'tried';
    return [$error];
  });

  # $tryer->result(...)

AUTHOR

Al Newkirk, awncorp@cpan.org

LICENSE

Copyright (C) 2011-2019, Al Newkirk, et al.

This is free software; you can redistribute it and/or modify it under the terms of the The Apache License, Version 2.0, as elucidated in the "license file".

PROJECT

Wiki

Project

Initiatives

Milestones

Contributing

Issues