From e9f62695a8925e0ebb74dba5d6b14c6c84ffef03 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sat, 31 Oct 2009 14:10:03 -0500 Subject: use try/catch rather than eval --- lib/IM/Engine/Plugin/Commands.pm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/IM/Engine/Plugin/Commands.pm b/lib/IM/Engine/Plugin/Commands.pm index e5ecec8..2f18ad4 100644 --- a/lib/IM/Engine/Plugin/Commands.pm +++ b/lib/IM/Engine/Plugin/Commands.pm @@ -3,6 +3,7 @@ use Moose; use Module::Pluggable sub_name => 'commands'; Sub::Name::subname('commands', \&commands); use List::Util qw(first); +use Try::Tiny; extends 'IM::Engine::Plugin'; =head1 NAME @@ -102,12 +103,14 @@ sub incoming { my $command = $self->_active_commands->{$command_name}; if (!defined $command) { my $command_package = $self->_command_package($command_name); - eval { Class::MOP::load_class($command_package) }; - if ($@) { - warn $@; - $self->say((split /\n/, $@)[0]); - return; + return unless try { + Class::MOP::load_class($command_package) } + catch { + warn $_; + $self->say((split /\n/)[0]); + return; + }; $command = $command_package->new(_ime_plugin => $self); $self->_active_commands->{$command_name} = $command; } -- cgit v1.2.3-54-g00ecf