in reply to subroutine array question

The error message tells you

Modification of a read-only value attempted

So re-write it:

#!/bin/perl use strict; use warnings; my @vals = ( 5, 6, 7 ); my @area = &circ_area( @vals ); foreach (@area) { print $_ . "\n"; } sub circ_area { foreach (@_) { $_= 3.14 * ($_**2); } return (@_) }

But since you're modifying the @_ var ... you really don't need to return it ... you're just needlessly copying the data.

#!/bin/perl use strict; use warnings; my @vals = ( 5, 6, 7 ); &circ_area( @vals ); foreach (@vals) { print $_ . "\n"; } sub circ_area { foreach (@_) { $_= 3.14 * ($_**2); } }

-derby