=head1 NAME
-Try::Tiny - minimal try/catch with proper preservation of $@
+Try::Tiny - Minimal try/catch with proper preservation of $@
=head1 VERSION
-version 0.25
+version 0.29
=head1 SYNOPSIS
C<$@> must be properly localized before invoking C<eval> in order to avoid this
issue.
-More specifically, C<$@> is clobbered at the beginning of the C<eval>, which
-also makes it impossible to capture the previous error before you die (for
+More specifically,
+L<before Perl version 5.14.0|perl5140delta/"Exception Handling">
+C<$@> was clobbered at the beginning of the C<eval>, which
+also made it impossible to capture the previous error before you die (for
instance when making exception objects with error stacks).
For this reason C<try> will actually set C<$@> to its previous value (the one
C<$@> could also be an overloaded error object that evaluates to false, but
that's asking for trouble anyway.
-The classic failure mode is:
+The classic failure mode (fixed in L<Perl 5.14.0|perl5140delta/"Exception Handling">) is:
sub Object::DESTROY {
eval { ... }
This is because an C<eval> that caught a C<die> will always return a false
value.
-=head1 SHINY SYNTAX
+=head1 ALTERNATE SYNTAX
-Using Perl 5.10 you can use L<perlsyn/"Switch statements">.
+Using Perl 5.10 you can use L<perlsyn/"Switch statements"> (but please don't,
+because that syntax has since been deprecated because there was too much
+unexpected magical behaviour).
=for stopwords topicalizer
}
}
-Note that this behavior was changed once again in L<Perl5 version 18
-|https://metacpan.org/module/perldelta#given-now-aliases-the-global-_>.
+Note that this behavior was changed once again in
+L<Perl5 version 18|https://metacpan.org/module/perldelta#given-now-aliases-the-global-_>.
However, since the entirety of lexical C<$_> is now L<considered experimental
|https://metacpan.org/module/perldelta#Lexical-_-is-now-experimental>, it
is unclear whether the new version 18 behavior is final.
L<http://web.archive.org/web/20100305133605/http://nothingmuch.woobling.org/talks/yapc_asia_2009/try_tiny.yml>
-=head1 VERSION CONTROL
-
-L<http://github.com/doy/try-tiny/>
-
=head1 SUPPORT
Bugs may be submitted through L<the RT bug tracker|https://rt.cpan.org/Public/Dist/Display.html?Name=Try-Tiny>
=head1 CONTRIBUTORS
-=for stopwords Karen Etheridge Peter Rabbitson Ricardo Signes Mark Fowler Graham Knop Lukas Mai Dagfinn Ilmari Mannsåker Rudolf Leermakers anaxagoras awalker chromatic Alex cm-perl Andrew Yates David Lowe Glenn Hans Dieter Pearcey Jonathan Yu Marc Mims Stosberg Paul Howarth
+=for stopwords Karen Etheridge Peter Rabbitson Ricardo Signes Mark Fowler Graham Knop Lukas Mai Aristotle Pagaltzis Dagfinn Ilmari Mannsåker Paul Howarth Rudolf Leermakers anaxagoras awalker chromatic Alex cm-perl Andrew Yates David Lowe Glenn Hans Dieter Pearcey Jens Berthold Jonathan Yu Marc Mims Stosberg Pali
=over 4
=item *
+Aristotle Pagaltzis <pagaltzis@gmx.de>
+
+=item *
+
Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
=item *
+Paul Howarth <paul@city-fan.org>
+
+=item *
+
Rudolf Leermakers <rudolf@hatsuseno.org>
=item *
=item *
+Jens Berthold <jens@jebecs.de>
+
+=item *
+
Jonathan Yu <JAWNSY@cpan.org>
=item *
=item *
-Paul Howarth <paul@city-fan.org>
+Pali <pali@cpan.org>
=back