I have no doubt that this will work. But I'm looking for a way to hide the ugly details from the calling code.

Perhaps (looking at your suggestion and making this up as I go...)

sub my_sub { # do stuff eval { potential icky bit }; if ($@) { return 0; } else { return $something_useful; } } # MAIN unless ( $result = my_sub() ) { # use $@ to figure out what to do }
Well and good. But what if the problem arises from the logic of my task and not from an eval-able error. Bad data for example.

I'm willing to hid any ugliness in the sub. But how do I best set a retreavable value of my own chosing to flag the problem and still allow succinct, clean code where the sub is called:

unless ( $result = my_sub() ) { # handle error condition based on error var }

In reply to Re: Re: Idomatic Handling of Subroutine Error by dvergin
in thread Idomatic Handling of Subroutine Error by dvergin

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":