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 は無効になるのかな。

さらに5分後

そうだ。
http://iandeth.dyndns.org/mt/ian/archives/000615.html