/usr/share/perl5/Throwable.pm is in libthrowable-perl 0.102080-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | package Throwable;
BEGIN {
$Throwable::VERSION = '0.102080';
}
use Moose::Role 0.87;
# ABSTRACT: a role for classes that can be thrown
has 'previous_exception' => (
is => 'ro',
init_arg => undef,
default => sub {
return unless defined $@ and (ref $@ or length $@);
return $@;
},
);
sub throw {
my ($inv) = shift;
if (blessed $inv) {
confess "throw called on Throwable object with arguments" if @_;
die $inv;
}
my $throwable = $inv->new(@_);
die $throwable;
}
no Moose::Role;
1;
__END__
=pod
=head1 NAME
Throwable - a role for classes that can be thrown
=head1 VERSION
version 0.102080
=head1 SYNOPSIS
package Redirect;
use Moose;
with 'Throwable';
has url => (is => 'ro');
...then later...
Redirect->throw({ url => $url });
=head1 DESCRIPTION
Throwable is a role for classes that are meant to be thrown as exceptions to
standard program flow. It is very simple and does only two things: saves any
previous value for C<$@> and calls C<die $self>.
=head1 ATTRIBUTES
=head2 previous_exception
This attribute is created automatically, and stores the value of C<$@> when the
Throwable object is created.
=head1 METHODS
=head2 throw
Something::Throwable->throw({ attr => $value });
This method will call new, passing all arguments along to new, and will then
use the created object as the only argument to C<die>.
If called on an object that does Throwable, the object will be rethrown.
=head1 AUTHORS
=over 4
=item *
Ricardo SIGNES <rjbs@cpan.org>
=item *
Florian Ragwitz <rafl@debian.org>
=back
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2010 by Ricardo SIGNES.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
|