in reply to Re^2: Seeking a module to convert numbers to words
in thread Seeking a module to convert numbers to words
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Seeking a module to convert numbers to words
by kcott (Archbishop) on Aug 21, 2011 at 15:35 UTC | |
Update: My apologies pvaldes. This was not poorly received! I believe I have confused reception to a different post of yours. Probably need new glasses or something. Again, sorry. My original response follows: pvaldes, thanks for taking the time to reply. As I'm sure you're aware by now, your response has not been well received. Let's see if we can garner something positive from the exercise. In my original prototype code, I had something which is perhaps on par with what you're suggesting. Rather than digging out old versions, this gives an idea of what it may have looked like:
Moving out of the prototype phase, this code obviously needed to be more robust. I searched around for an existing module without success and, having decided this would be an interesting exercise, came up with the following proof-of-concept: Read more... (6 kB)
After ironing out bugs (mostly to do with output format), I put the non-test parts of this code into a module: Util::Number. Having added to @fixed_test_data as I tested, I have values for regression testing (which is still to do as well as POD). I was surprised that I hadn't been able to find any code like this. I decided to ask here and, if no one had any better ideas, look at putting this functionality on CPAN. You know the rest from this thread. Here's a quick comparison of the modules mentioned:
In closing, providing something substantial will generally be well received whereas "... add some if and else rules here and there ..." will not. As you can see, while I have thrown a few ifs and elses around, there was nothing in your post that suggested how I should do this. I recommend you take a look at To Answer, Or Not To Answer..... P.S. I haven't downvoted your node: I reckon you've got enough bad press already. :-) -- Ken | [reply] [d/l] [select] |
by pvaldes (Chaplain) on Aug 21, 2011 at 17:55 UTC | |
In dirty and blooding pseudocode 1- Simplify the idea. You don need all of this
You only need this: No, you don't need a bigger hash, you could make it bigger but this is not necessary probably. 2 - pick up the whole number, by your preferred method, maybe a regex \d{1,}. Store the number in a variable 3 -Proceed to parse the number
This is more or less all that you need, of course you can refine the idea a lot: you can simplify the idea behind there_is_hundred / hundred_str and do all in one steep with one variable, you should also do something with floating numbers, and you should aware that billion could be a very different creature in Europe and in USA and, and, and... But in any case, the idea behind all is very simple. Treat the number as a chain, pop the numbers one by one until you have undef, eval the number each time, fill as many variables as digits you have and print all together at the end, including the invisible null variables | [reply] [d/l] [select] |