#ふと疑問に思ったのでつが

#!/usr/bin/perl

use strict;

my $test = 10;
my $p = ¥$test;


&test_p(¥$p);
&test_p2(¥$test);
&test_g(*test);
$test = &test_v($test);

sub test_p {
$$p = 20;
}
sub test_p2 {
$test = 20;
}
sub test_g {
$test = 20;
}
sub test_v {
my $test = 20;
return $test;
}

より良いperl使いになろうとしたらどれを選択するべきでしょうか?