http://www.perlmonks.org?node_id=226605


in reply to Re: getting 0 to print
in thread getting 0 to print

This node falls below the community's threshold of quality. You may see it by logging in.

Replies are listed 'Best First'.
Re: Re: Re: getting 0 to print
by thor (Priest) on Jan 13, 2003 at 21:57 UTC
    ...and I have to disagree with you. The fact that your DB formats the output a certain way is merely a convenience. Your data could have come from a delimited file and it would have been all the same. You had a broken piece of logic in if($_){do stuff}, because your particular $_ was 0, which evaluates to false.

    thor

Re: Re: Re: getting 0 to print
by dws (Chancellor) on Jan 14, 2003 at 01:49 UTC
    The fact the data is coming from a database is very relevant and key to the solution to this problem.

    No, the database is incidental. Let's do a remedial debugging review to see why.

    You notice that '0' is getting printed as ''. Having seen a zero come back when you ran the query in a command-line tool, you suspect that the issue isn't the database, so you work from the end backwards. You note that the path between the '0' that you have and the print that is printing as an empty string includes a join, a map, and a call to trim.

    Knowing (or strongly suspecting) that join and map don't zap zeros, you direct your attention to trim. What comes back when we pass a '0' to trim()? An empty string!

    Voila. The database (and most the rest of the script) is now out of the loop completely. You have isolated the problem to a single subroutine.

    Assuming that you're unable to discern how trim() could possible turn a zero into an empty string, you nonetheless have a small snippet to post.

    A reply falls below the community's threshold of quality. You may see it by logging in.