Document lexical lib/Try/Tiny.pm caveat
Yuval Kogman [Tue, 23 Feb 2010 11:06:05 +0000 (12:06 +0100)]
lib/Try/Tiny.pm

index fcb5b74..9b99f91 100644 (file)
@@ -447,6 +447,24 @@ C<eval> blocks, since it isn't people have grown to rely on it. Therefore in
 the interests of compatibility, C<try> does not disable C<$SIG{__DIE__}> for
 the scope of the error throwing code.
 
+=item *
+
+Lexical C<$_> may override the one set by C<catch>.
+
+For example Perl 5.10's C<given> form uses a lexical C<$_>, creating some
+confusing behavior:
+
+       given ($foo) {
+               when (...) {
+                       try {
+                               ...
+                       } catch {
+                               warn $_; # will print $foo, not the error
+                               warn $_[0]; # instead, get the error like this
+                       }
+               }
+       }
+
 =back
 
 =head1 SEE ALSO