in reply to eval & variable names?

You probably want to do this:
#!/bin/env perl use strict; use warnings; my ($a, $b, $c); $a = $b = $c = 0; foreach my $v (qw/a b c/) { func($v); } sub func { my $v = shift; print "v = $v\n"; eval '$'.$v.' = $'.$v.' * 2'; } print "$a $b $c\n";
It's completely hideous, but it works as long as func() isn't defined in another file.