Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: New Perl user - help with my homework

by soonix (Abbot)
on Dec 27, 2018 at 15:43 UTC ( #1227757=note: print w/replies, xml ) Need Help??


in reply to New Perl user - help with my homework

Since your teacher wants you to use for, I think the first two tasks are solved OK. But for your own projects, definitely look at the other solutions, too.

Third and fourth task: you wrote:

if ($numbers[0] > 50) { push (@array,$numbers[0]) } if ($numbers[1] > 50) { push (@array,$numbers[1]) } if ($numbers[2] > 50) { push (@array,$numbers[2]) } if ($numbers[3] > 50) { push (@array,$numbers[3]) }
That's 4 times the (nearly) same statement. And if it were not 4 numbers, but 10 - what then? And earlier, you saw that you can't write
$sum += 2; push(@array,2); $sum += 4; push(@array,4); $sum += 6; push(@array,6);
This is the stage for the other type of "for": either
for (@numbers) { push @array, $_ if $_ > 50; }
or - for learning purposes more verbose:
for my $current (@numbers) { if ($current > 50) { push @array, $current; } }
Of course, this is possible with a C-style for, too, but this one is one of Perl's strengths.

The last task is made for Perl-style for, too.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1227757]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (8)
As of 2019-05-22 11:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you enjoy 3D movies?



    Results (139 votes). Check out past polls.

    Notices?
    • (Sep 10, 2018 at 22:53 UTC) Welcome new users!