Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re: Re: Character++

by ignatz (Vicar)
on Sep 07, 2002 at 23:03 UTC ( #195919=note: print w/replies, xml ) Need Help??

in reply to Re: Character++
in thread Character++

But to decrement:
my $ctr = 'a'; $ctr = chr( ord($ctr) - 1);
Not sure why they decided not to implement -- on chars. (Thanks to Dog and Pony and Zaxo for pointing me to page 354 in Programming Perl for that.)

Replies are listed 'Best First'.
Re: Re: Re: Character++
by clintp (Curate) on Sep 07, 2002 at 23:48 UTC
    Not sure why they decided not to implement -- on chars
    Not every computational process is reversable, nor should it be. "clintp"-- probably would go to "clinto" you'd think.

    "aa"-- might even logically go to "z", but then where should "a"-- go? "-a"? undef? ""? "`"? (how about on ebcdic systems?) Throw a warning (eeek! no warnings 'autodecrementascii'), throw an error (not remotely perlish!)?

    Sometimes language features are nice, you acknowledge them, maybe use them, move on, and not think too hard about making them fit into every conceivable programmatic niche you can think of. Perl's gotten in trouble for this kind of nonsense before (pseudohashes, v-strings). Enjoy magical autoincrement. And remember putting magic under a microscope takes all of the joy out of it.

      Couldn't you make the same arguments for 'Z'++? If you're gonna do the one, do the other.

      I figure that the rule of least surprise outweighs the fact that chr( ord('a') - 1) returns a backtick on most people's computers. ++ two equals three, -- two equals one; ++ 'b' equals 'c', -- 'b' equals '-1' Huhh??!!

      Sure, in the grande scheme of things, what's the diff. In my book this rates right up there with elsif. Another one of Perl's quirky little roadblocks that make people think.

Re: Re: Re: Character++
by belg4mit (Prior) on Sep 07, 2002 at 23:14 UTC
    In which case, for small ranges, reverse 'a' .. 'z', might be a better choice.

    perl -pew "s/\b;([mnst])/'$1/g"

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://195919]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (3)
As of 2023-06-08 08:43 GMT
Find Nodes?
    Voting Booth?
    How often do you go to conferences?

    Results (29 votes). Check out past polls.