Home: Perl Programming Help: Frequently Asked Questions:
How do I process/modify each element of an array?



Jasmine
Administrator

Jan 19, 2001, 3:15 PM


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

(From the Perl FAQ)

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

Use for/foreach:

Code
    for (@lines) { 
s/foo/bar/; # change that word
y/XZ/ZX/; # swap those letters
}

Here's another; let's compute spherical volumes:

Code
    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 may not use the values function, oddly enough. You need a slice:

Code
    for $orbit ( @orbits{keys %orbits} ) { 
($orbit **= 3) *= (4/3) * 3.14159;
}