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


in reply to Untillian Headache or about the semantic of until

The first thing I noticed is that the ordering of the sub conditions is probably wrong in the original.

As constructed, if $wheel < 0, it won't be detected until after the first sub condition has already accessed a negative subscripted array element, which is almost certainly wrong.

So, I'd suggest you start with switching that around: until( $wheel < 0 || $odometer[ $wheel ] > 9 ) { ....

Then, I'd suggest you translate that into prose in your preferred language. (I use English; for you probably Italian?).

Loop, until the array index reduces past the start of the array; or, the value of the array element at the current index is greater than 9.

Then invert the logic of that prose description:

Loop, while the array index hasn't reduced past the start of the array; and, the value of the array element at the current index is less than or equal to 9.

And then translate it back to code: while( $wheel >=0 && $odometer[ $wheel ] <=9 ) {


And finally, the inevitable question about why you want to do that anyway?

How do Italian recipes phrase the common situation: Bake for 15 minutes or until the cheese is melted and bubbling.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.