sub shared_test { my $var_ref = shift; return undef unless ref $var_ref; my $safety : shared; eval { $safety = $var_ref; }; return !$@; } my $shared : shared = 1; my $private = 2; shared_test(\$shared); shared_test(\$private);