http://qs1969.pair.com?node_id=413492

BrowserUk has asked for the wisdom of the Perl Monks concerning the following question:

If anyone can think of a better title, /msg me and I'll change it.

Probably another of my "can't see the wood for the trees" questions, but why does this work:

P:\test>perl -wl my $b .= 'fred' . 'bill'; print $b;; ^Z fredbill

And this:

P:\test>perl -wl my $a = 'a' x 10; my $b; $b .= substr( $a, $_, 10-$_ ) . '-' x $_ for 0 .. 9; print $b; ^Z aaaaaaaaaaaaaaaaaaa-aaaaaaaa--aaaaaaa---aaaaaa----aaaaa-----aaaa------ +aaa-------aa--------a---------

But not this?

P:\test>perl -wl my $a = 'a' x 10; my $b .= substr( $a, $_, 10-$_ ) . '-' x $_ for 0 .. 9; print $b; ^Z Use of uninitialized value in print at - line 3.

Examine what is said, not who speaks.        The end of an era!
"But you should never overestimate the ingenuity of the sceptics to come up with a counter-argument." -Myles Allen
"Think for yourself!" - Abigail        "Time is a poor substitute for thought"--theorbtwo         "Efficiency is intelligent laziness." -David Dunham
"Memory, processor, disk in that order on the hardware side. Algorithm, algorithm, algorithm on the code side." - tachyon