Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

convenient way to have Try::Tiny universally available?

by markjugg (Curate)
on Dec 14, 2010 at 16:07 UTC ( #877106=perlquestion: print w/ replies, xml ) Need Help??
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?
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 Dec 14, 2010 at 16:30 UTC
Re: convenient way to have Try::Tiny universally available?
by ikegami (Pope) 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 Apr 18, 2013 at 04:12 UTC

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://877106]
Approved by marto
Front-paged by marto
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (13)
As of 2014-10-21 13:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (103 votes), past polls