If you want symbolic references, just use them. Just because "use strict" prevents you from using them by accident doesn't mean it's bad to use them. Untested code:
our ($a, $b, $c) = (0, 0, 0);
foreach my $v (qw/a b c/) {
func($v);
}
sub func {
my $v = shift;
print "v = $v\n";
no strict 'refs';
$$v *= 2;
}