| [reply] [Watch: Dir/Any] |
$ perl -MIO::All -MData::Printer -e " p( io(2) ); "
Can't use string ("") as a symbol ref while "strict refs" in use at ..
+./site/lib/Data/Printer.pm line 702.
| [reply] [Watch: Dir/Any] [d/l] |
Thanks, that's right. Its because io() will emit an overloaded object so stringification would trigger.
You'll have to "peel off" the overloading, so to speak, by invoking overload::Overloaded (though funny, the perldoc says this should "true if 'arg' is subject to overloading...", wasn't expecting an actual GLOB object there.)
% perl -de 0 -MIO::All -MData::Printer
Loading DB routines from perl5db.pl version 1.51
Editor support available.
Enter h or 'h h' for help, or 'man perldebug' for more help.
main::(-e:1): 0
DB<1> $io = io '.zshrc'
DB<2> x overload::Overloaded( $io )
0 GLOB(0x17a4378)
-> *IO::All::((
DB<3> $o = overload::Overloaded( $io )
DB<4> Data::Printer::p($o)
\ *IO::All::(( (layers: )
DB<5>
It would probably make a nice exercise to implement a Data::Printer filter for this. | [reply] [Watch: Dir/Any] [d/l] [select] |