I am striking this whole post as this didn't work out very well. Somehow the main point just got completely lost. Perl is not a great character by character language and its just not the right way to use Perl, but somehow I wasn't able to get this across. Oooops.
Yes. You are correct!!.

This whole thread is a bit weird as the idea of processing a char at a time is sort of "anti-Perl".

The code should be: while (my $var =shift @string){}
But that makes no difference.