http://qs321.pair.com?node_id=877106

markjugg has asked for the wisdom of the Perl Monks concerning the following question:

Try::Tiny is great. I would like to have it available everywhere. Partly because it's useful, and partly because it fails poorly if you forget to "use" it-- instead having a syntax error, it becomes an indirect method call, causing unexpected or confusing results at times

What's a convenient way to make it broadly available to a primarily OO-based project? I have in mind something like "Toolkit.pm", but without requiring source filters. I know projects like perl5i include Try::Tiny, but they also bring in a lot more than I want. I would be happy to include just "strict, warnings and Try::Tiny" universally in my project. I think my best idea at the moment is to start with Modern::Perl as an example and roll my own solution.

Another idea is to just explicitly "use" it everywhere, but have an automated test that makes sure it's present and working in all my modules. Maybe a "Test::TryTiny" solution could created to easily audit a project in this way.

Other ideas?

  • Comment on convenient way to have Try::Tiny universally available?

Replies are listed 'Best First'.
Re: convenient way to have Try::Tiny universally available?
by ikegami (Patriarch) on Dec 14, 2010 at 18:03 UTC
    package MyToolkit; use Try::Tiny; sub import { Try::Tiny->import(); } 1;
    package MyToolkit; use Try::Tiny; sub import { Try::Tiny->export_to_level(1); } 1;
Re: convenient way to have Try::Tiny universally available?
by Anonymous Monk on Dec 14, 2010 at 16:30 UTC
Re: convenient way to have Try::Tiny universally available?
by JavaFan (Canon) on Dec 14, 2010 at 16:19 UTC
    export PERL5OPT="-MTry::Tiny"
    in your .profile? Of course, it means your program won't be run correctly by someone who doesn't have this in his/her profile.
      That will not affect any package but main::
Re: convenient way to have Try::Tiny universally available?
by Anonymous Monk on Apr 18, 2013 at 04:12 UTC