Ways to address this:
-
You can convert to using the builtin feature.
$ perl -E'try { 1/0 } catch ( $e ) { }; say "ok"' # Using 5.40
ok
-
You can follow add no feature qw( try );
$ perl -MTry::Tiny -E'no feature qw( try ); try { 1/0 }; say "ok"'
ok
-
You can use an older version of the "language" (even if you're using the 5.40 interpreter).
$ perl -Mv5.38 -MTry::Tiny -e'try { 1/0 }; say "ok"'
ok
(5.10 would suffice for this program.)
As you might have noticed, -E isn't forward compatible. Your program would have worked with 5.38, but it doesn't with 5.40. If it's not a throwaway program, it's safer to use
-e'use v5.xx; ...'
or
-Mv5.xx -e'...'
instead of
-E'...' # XXX Not forward-compatible.
|