This works as expected
cat > perldl-lvalue.pl
print identity 1
But this does not:
perl -d perldl-lvalue.pl
Can't return a temporary from lvalue subroutine at /usr/lib/perl5/PDL/MatrixOps.pm line 169.
at /usr/lib/perl5/PDL/MatrixOps.pm line 169
PDL::MatrixOps::identity(1) called at /home/davis/tmp/perldl-lvalue.pl line 5
I.e. PDL lvalue functions, not just this one, seem to fail under the Perl debugger.
I tried this on the PDL (2.4.5) included in my Ubuntu 10.04 (i686) and also built 2.4.6 and 2.4.6_001 from CPAN.