Saturday, September 24, 2011

Add Try::Tiny to Mouse or Moose

Here is a little snippet that shows how to extend Mouse (lightweight version of Moose) with Try::Tiny for better exception handling.

Here would be your application class:

package MyApp::Mouse;

use Mouse ();
use Mouse::Exporter;
use Try::Tiny;

	as_is => [qw[try catch finally]],
	also  => 'Mouse'


Then you simply use MyApp::Mouse in place of the Mouse module for your classes:

package Foo;

use MyApp:::Mouse;

sub t {
	my ($self,$d) = @_;
	my $v = try {
		die "testing" if $d;
	} catch {

	return $v;


A simple test?

package Foo;

~$ perl -Mfeature=:5.12 -MFoo -e say Foo->new->t;

Of course this recipe works with Moose, simply replace the Mouse namespace with the Moose namespace and your in business.


  1. So, like.. are you with "Sara Mangus" because she looks like a dude and you're secretly gay?

  2. WynnBET : Situs Slot Online | Casino Online Gambling
    WynnBET - Situs Slot Online WynnBet - Situs poormansguidetocasinogambling Slot Online WynnBet - Situs Slot Online 나비효과 WynnBet - Situs Slot apr casino Online septcasino WynnBet - Situs Slot Online WynnBet - Situs Slot Online