Don't ask to ask, just ask | |
PerlMonks |
comment on |
( [id://3333]=superdoc: print w/replies, xml ) | Need Help?? |
It would help if you could define what you mean by "works fine" and "fails", ideally by giving an sscce. According to the docs, the intention when supplying [*value] is that the output will assign a name appropriate to the type of the value: if you give it a hashref to dump, it will assume it actually represents a hash called %value, for example. It appears this has been broken for a long time, and was recently fixed - a quick scan of the Changes file (https://metacpan.org/dist/Data-Dumper/changes) suggests it may have been the very recent 2.182_51 change. With latest bleadperl (which has v2.184, not yet available on CPAN), I get:
.. which I believe is the correct intended output. With older versions (back at least as far as maint-5.8) I get instead:
.. which is wrong, since it refers to $VAR1 instead of to %value. By changing it to \[*value] I guess you have turned it into something Dump() does not recognise, so it ignores it. The result is that you get the same output as the previous broken behaviour. You can achieve the same by removing the [*value] arrayref altogether. (I'm slightly worried that the changelog states that this was a fix only for the XS code: additionally calling $d->Useperl(1) before the Dump() call does not change the output in either case for me, so it's possible I'm completely misunderstanding what's going on.) Hugo In reply to Re: BackupPC or Data::Dumper playing foul...?
by hv
|
|