Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

Re: Re: getting 0 to print

by rbc (Curate)
on Jan 13, 2003 at 21:32 UTC ( #226605=note: print w/replies, xml ) Need Help??

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

I have to disagree with you.

The fact the data is coming from a database is very
relevant and key to the solution to this problem.

Instead of trying to output the data coming from the query:
select * from $table
... I decided to deal with the formatting of the output
in SQL like so ...
select $cols from $table
... where $cols is built up with ltrim, rtrim and ||
and the previous query. $cols for this particular
example would look like this ...
ltrim(rtrim(VALUE)) || '|' || ltrim(rtrim(DESCRIPTION)) || '|'
Thanks for your input anyways.
Sorry your meta-help couldn't of been of more use.

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.


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.

      You miss my point.

      If I had posted my question in the way you suggested.
      Nobody would have known that there might be another way
      of fixing the problem.

      Yes I could change my trim sub as pointed out by more
      helpful monks than yourself. That is one possible solution.
      Another solution could have been over looked if I had not
      mentioned the input is coming for a database.

      Thanks again for all that hot air, but it is getting
      warm so I would prefer to avoid your remedial help in
      the future.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://226605]
[hippo]: That's some Joycean spam.

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (8)
As of 2018-05-22 12:28 GMT
Find Nodes?
    Voting Booth?