How do I process/modify each element of an array?

Use for/foreach:

    for (@lines) {
	s/foo/bar/;	# change that word
	y/XZ/ZX/;	# swap those letters
    }
Here's another; let's compute spherical volumes:

    for (@volumes = @radii) {   # @volumes has changed parts
	$_ **= 3;
	$_ *= (4/3) * 3.14159;  # this will be constant folded
    }
If you want to do the same thing to modify the values of the hash, you can use the values function. As of Perl 5.6 the values are not copied, so if you modify $orbit (in this case), you modify the value.

    for $orbit ( values %orbits ) {
	($orbit **= 3) *= (4/3) * 3.14159; 
    }
Prior to perl 5.6 values returned copies of the values, so older perl code often contains constructions such as @orbits{keys %orbits} instead of values %orbits where the hash is to be modified.
Back to perlfaq4