If you want to understand what's going on, you can
try adding some print statements. This should make
it pretty clear what's happening.
use strict;
my @list = qw(1 2 3 4 5);
my $each = "";
my $i = 0;
my @newlist = ();
foreach $each (@list) {
print "Each was: $each\n"; #new
$each *= 2;
print "Each is: $each\n"; #new
$newlist[$i] = $each;
print "New list is: $newlist[$i]\n"; #new
print "Old list is $list[$i]\n\n"; #new
++$i;
}
for ($i= 0; $i<5; ++$i) {
print ($newlist[$i] - $list[$i], "\n");
}
And maybe in the future it would be a good idea for the
reason for what happens to be included in the 'black box
of enlightenment' so that people won't just be puzzled,
but will learn, too? (Or maybe not; it's good debugging
practice to figure out where the unexpected happens.
Why have the box at all? There isn't much point to just
show the output, since people can just run the
program to see the output.)
| [reply] [Watch: Dir/Any] [d/l] |
Thanks for the feedback. I was debating whether or not to post the solution or some kind of hint along with the answer. I'll try some different things in the future and see what seems to be the most helpful to people. For this one, I plan on posting the answer tomorrow.
I think if people can immediately check the answer and see that their first instinct was wrong, this will tend to get them involved more and make them curious...I think they'll start wondering where they went wrong and figure it out for themselves.
Why the black box? Just for aesthetic reasons...makes it a little more fun, I think.
| [reply] [Watch: Dir/Any] |
| [reply] [Watch: Dir/Any] |