Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re^3: Filling in missing values in an array

by FunkyMonk (Canon)
on Jun 29, 2011 at 16:37 UTC ( #911994=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Filling in missing values in an array
in thread Filling in missing values in an array

Though I'm not quite sure how tests 3-5 are supposed to go
Neither was I! So I made it die (a.k.a throws an exception) when the array consists only of NULLs. Garbage in, garbage out, as we used to say. Exceptions prevent the garbage leaking out.

If you decide it should do something other than die, just change this line:

die "No values found" if @arr && 0 == grep $_ ne '_', @arr;


Comment on Re^3: Filling in missing values in an array
Download Code
Re^4: Filling in missing values in an array
by Neighbour (Friar) on Jun 30, 2011 at 06:39 UTC
    Yea, but when it dies, the tests are never executed (in my case). That's probably not what's supposed to happen :).
      If you don't want the code to die, you need to use something to catch the exception. I like Try::Tiny:
      use Try::Tiny; my @bad = try { fill_in_the_blanks(qw<_ _ _>) } # fails catch { print "bad data!\n" }; my @good = try { fill_in_the_blanks(qw<_ 1 _>) } # succeeds catch { print "bad data!\n" };
      Ah, found out where things went wrong:
      My code dies with a 'No values found' for is_deeply [fill_in_the_blanks(qw< >)], [qw< >], "( )";.
      I thought that throws_ok didn't catch the die but that wasn't the case.
      Seems our approach of the 'empty array'-situation differs :)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (13)
As of 2014-07-22 22:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (129 votes), past polls