Enable strict mode. There are no errors because of undefined vars because you used $a and $b, which are always defined, as they are used by sorting.
For the same reason, you choose @INC;
You set $a to 4.
or written a little bit cleaner
$a=$a - $a-- + $a++;
But still rather hard to understand, because of the way auto-in/decrement worksin suffix mode:
What happens is (if I got it right):
$a=$a - $a-- + $a++;
$a is now 3, but 4 is substracted
$a=3 - 4 + $a++;
$a=-1 + $a++;
$a is incremented to 4, but 3 (the old value) is used in the addition
$a= -1 + 3
$a is now 2
And now its 3
sets $b to a value between 0 and 2.
increments it by one, so it is now 1, 2, or 3. Used to decide which virtue to print.
Here you map over all elements of the DATA array, doing the following things:
remove the line brake at the end of the line
Set @INC, by splitting the current line on non-numeric values, thereby removing all charaters from the stuff in DATA. This made me wonder, because first I thought you where using the characters hidden between the numbers as your data. But, as I then found out, you just tossed me a red herring that I gullibly swalloed.
Now you modify your data structure. In the DATA-section, you stored the ascii values of each character (multiplied by either 1,2 or 3), like so (using the real characters):
(and these are NOT
the 'L', the 'I', the 'H' etc you can see in the DATA section).
With this code segment, you first get item number $b (and divide by $b, so it is now the real ascii value), then you get $b+$a. As $a is 3, this gets the next value of the selected virtue. The shorter virtues are space-padded at the end.
Here you finally map over all values of @_, printing the character with the ascii value of $_. A nice way to prevent the much-overused chr
Nice work! Especially as it's not just one more japh.
I espcially liked the auto-in/decrement stuff and the wrong track you laid in DATA.
#!/usr/bin/perl -w just another perl hacker
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
| & || & |
| < || < |
| > || > |
| [ || [ |
| ] || ] |