Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: What Are The Rules For Subs And Modules When Fed Wrong Input

by tame1 (Pilgrim)
on Jul 22, 2002 at 04:08 UTC ( #183937=note: print w/replies, xml ) Need Help??


in reply to What Are The Rules For Subs And Modules When Fed Wrong Input

Cody,

One of the things I use to get around things like this is to use anonymous hashes to call subroutines. For example:
my ($value,$error) = my_sub(input => 'who', inny => 'what'); unless ($value) { my_abort ("There was an error: ",$error); }
and then, in my_sub
sub my_sub { my %args = { input => undef, inny => undef, @_ }; return(undef,"Missing inny") unless $args->{'inny'}; # do some stuff if ($problem) { return(undef,$error_msg); } return($value,undef); }
As you can see, with this you can test for each input requirement by name, dieing on the "gotta-have-its" and just warning on the "ok-I-dont-need-its".
The my_abort could even be changed to check for error severity and do a warn or die based on that.

Anyhow, just my 2 cents on handling sub calls that may return errors.

What does this little button do . .<Click>; "USER HAS SIGNED OFF FOR THE DAY"

Replies are listed 'Best First'.
Re: Re: What Are The Rules For Subs And Modules When Fed Wrong Input
by bcisys (Initiate) on Jul 25, 2002 at 16:57 UTC
    There's a small typo in the code example:
    sub my_sub { # my %args = { # Was... my $args = { # Should be... input => undef, inny => undef, @_ };

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://183937]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (6)
As of 2020-04-08 16:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    The most amusing oxymoron is:
















    Results (45 votes). Check out past polls.

    Notices?