Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

Re: Assignments for Subroutines

by aaron_baugher (Curate)
on Sep 27, 2012 at 13:56 UTC ( #996011=note: print w/replies, xml ) Need Help??

in reply to Assignments for Subroutines

If you turned these in as-is, I'd be curious to know what grade you got on the assignment. Here would be my answers:

1. Write a subroutine (&evens) that recieves an array of numbers and returns an array containing only even numbers. Give an example of calling the subroutine.
#!/usr/bin/env perl use Modern::Perl; sub evens { return grep { ! ($_ % 2) } @_; } say for evens(1..10);
2. Write a subroutine(&squares) that recieves an array of numbers and squares each number in the array. Note: nothing is returned.

Since the subroutine is supposed to take an array but return nothing, I assume it is to change the array in place. So I'll pass the array as a reference:

#!/usr/bin/env perl use Modern::Perl; sub squares { my $n = shift; $_ *= $_ for @$n; } my @nums = (1..10); squares(\@nums); say for @nums;
3. Write a subroutine(&huge) that returns true if the number sent is greater than 1,000,000 or false(look up what is true and false). Show an example of calling the function.
#!/usr/bin/env perl use Modern::Perl; sub huge { my $n = shift; return 1 if $n and $n > 1_000_000; return ! $n; # reverse the t/f for all other cases } for (-1,0,1,100,1_000_000, 1_000_001){ my $t = huge($_) ? 'true' : 'false'; say "$_ $t"; }

Aaron B.
Available for small or large Perl jobs; see my home node.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://996011]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (3)
As of 2018-03-20 23:28 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (261 votes). Check out past polls.