Spaces:
Running
Running
package autodie::exception::system; | |
use 5.008; | |
use strict; | |
use warnings; | |
use parent 'autodie::exception'; | |
use Carp qw(croak); | |
our $VERSION = '2.34'; # VERSION: Generated by DZP::OurPkg:Version | |
# ABSTRACT: Exceptions from autodying system(). | |
my $PACKAGE = __PACKAGE__; | |
=head1 NAME | |
autodie::exception::system - Exceptions from autodying system(). | |
=head1 SYNOPSIS | |
eval { | |
use autodie qw(system); | |
system($cmd, @args); | |
}; | |
if (my $E = $@) { | |
say "Ooops! ",$E->caller," had problems: $@"; | |
} | |
=head1 DESCRIPTION | |
This is a L<autodie::exception> class for failures from the | |
C<system> command. | |
Presently there is no way to interrogate an C<autodie::exception::system> | |
object for the command, exit status, and other information you'd expect | |
such an object to hold. The interface will be expanded to accommodate | |
this in the future. | |
=cut | |
sub _init { | |
my ($this, %args) = @_; | |
$this->{$PACKAGE}{message} = $args{message} | |
|| croak "'message' arg not supplied to autodie::exception::system->new"; | |
return $this->SUPER::_init(%args); | |
} | |
=head2 stringify | |
When stringified, C<autodie::exception::system> objects currently | |
use the message generated by L<IPC::System::Simple>. | |
=cut | |
sub stringify { | |
my ($this) = @_; | |
return $this->{$PACKAGE}{message} . $this->add_file_and_line; | |
} | |
1; | |
__END__ | |
=head1 LICENSE | |
Copyright (C)2008 Paul Fenwick | |
This is free software. You may modify and/or redistribute this | |
code under the same terms as Perl 5.10 itself, or, at your option, | |
any later version of Perl 5. | |
=head1 AUTHOR | |
Paul Fenwick E<lt>[email protected]<gt> | |