lvalue can’t set data with Devel::DProf
#!/usr/local/bin/perl my $hogedata = 'init'; hoge() = 'hogehoge'; printf "%s\n", hoge(); sub hoge : lvalue { $hogedata; }
というスクリプトは
Linux% perl -v This is perl, v5.8.8 built for i486-linux-gnu-thread-multi FreeBSD% perl -v This is perl, v5.8.8 built for i386-freebsd-64int
のどちらの環境で実行しても、Devel::DProf が有効だと値がセットできない。
% perl test.pl hoge = hogehoge % perl -d:DProf test.pl hoge = init
experimental なのでまあしょうがないんだけど、けっこう既出?
10分後追記
perldoc perltodo にある
LVALUE functions in the debugger The old perltodo notes that lvalue functions don't work in the debug- ger. This would be good to fix.
を見ると、DProf は関係なくて、debugging mode (perl -d) だと lvaule subroutine は無効になるのかな。