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


I think most of you have noticed the current traveling email worm called homepage.HTML.vbs. As a user of a linux-machine I found it very funny to see how often the message popped into my mailbox. On the other hand I was interested in what the source would look like, and found that it does some replacements to a quite long string. So I tried to decode it in perl, and came up with the following solution:

for (my $i = 0; $i < length($foo); $i++) { my $bar = substr($foo, $i, 1); if (ord($bar) == 15) { $bar = chr(10); } elsif (ord($bar) == 16) { $bar = chr(13); } elsif (ord($bar) == 17) { $bar = chr(32); } elsif (ord($bar) == 18) { $bar = chr(9); } else { $bar = chr(ord($bar)-2); } substr($foo, $i, 1) = $bar; } print $foo."\n";
I thought of using tr for that, but it seems to be quite tough to set up that lines.... So, any improvement are welcome - not for helping decoding (that was finished ;) but for improving personal abilities.

Like always, thanks in advance.
use signature; signature(" So long\nAlfie");