On Thu, Apr 24, 2008 at 1:20 AM, Ph. Marek <[EMAIL PROTECTED]> wrote:
> On Mittwoch, 23. April 2008, Larry Wall wrote:
>  > On Wed, Apr 23, 2008 at 04:03:01PM +0100, Smylers wrote:
>  > : The algorithm for increment and decrement on strings sounds really good,
>  > : however I'm concerned that dealing with all that has made the common
>  > : case of integer decrement a little less intuitive where the integer
>  > : happens to be stored in a string, for example in this case:
>  > :
>  > :    perl -wle '$a = 10; $b = shift; $a--; $b--; print "$a $b"' 10
>  > :
>  > : Perl 5 prints "9 9", but Perl 6 will print "9 09".
>  >
>  > On the other hand, "09" has the advantage of still having the numeric
>  > value 9.  But the converse is not true if the user was expecting a
>  > string decrement, since decrementing "10" in Perl 5 to get 9 is also
>  > counterintuitive if you were expecting "09".  So Perl 5 just punts,
>  > which is the third option.  In any case, there's always something
>  > to explain to a beginner.  But I think in Perl 6 we're leaning more
>  > toward preserving information than Perl 5 did.
>  But that doesn't really work for loops.
>
>  Imagine (excuse my perl5)
>         $a = "100";
>         $a-- for(1 .. 40);
>
>  So ($a eq "060")?
>  Then you'll have the problem that this gets (or might get) interpreted as
>  octal somewhere; if not in perl6 directly (because of different base
>  specifications), you're likely to get problems when passing that to other
>  programs, eg. via system().
snip

If you are certain to want a number then you either need to say

$a = +("100");

or use +($a) when passing it.
-- 
Chas. Owens
wonkden.net
The most important skill a programmer can have is the ability to read.

Reply via email to