ソフトリファレンスはグローバル変数しか参照できません
Q.ソフトリファレンスで変数を参照してもundefって言われます
A.ソフトリファレンスとか使うのが間違ってますソフトリファレンスが読み書き出来るのはグローバル変数だけです
use strict; use warnings; use Data::Dumper; local $\ = "\n"; sub p ($) { print Dumper shift } our $var_our = 'hoge'; my $var_my = 'huga'; my $str_our = 'var_our'; my $str_my = 'var_my'; no strict 'refs'; p ${$str_our}; p ${$str_my};
% perl soft_ref.pl $VAR1 = 'hoge'; $VAR1 = undef;
$var_myはmainパッケージに属するけど、$var_ourは何処に属するんだ?