in reply to Re^2: Confessions of a back-alley map abuser
in thread Confessions of a back-alley map abuser

I like to use "for" for that kind of thing

Me too, but I have found do{} is more readable. For one thing, it saves you from your bug: Your version throws away the uppercase string and so prints just "goodbye todo el mondo". My version would look like this:

my $sBegin = "hello world"; my $sEnd; for ($sEnd = $sBegin) { s/hello/goodbye/g; s/world/todo el mondo/; $_ = uc; }; print $sEnd;

TIMTOWTDI, but I think do{} is the more readable here.

Update: I trust you. No problem. But the bug still illustrates how the void context makes the for loop slightly less readable here. Such a bug (update: or the more likely opposite bug) could not as easily occur in the do{} block.

print "Just another Perl ${\(trickster and hacker)},"
The Sidhekin proves Sidhe did it!

Replies are listed 'Best First'.
Re^4: Confessions of a back-alley map abuser
by itub (Priest) on Dec 18, 2004 at 19:45 UTC
    Oops, thanks! I didn't test the code, of course. It was just a quick cut-n-paste recast as a for. But trust me, when I do it in practice it works fine. ;-)