> [EMAIL PROTECTED] - Thu Mar 30 10:31:39 2000]: > > You can kind create byteloaded modules and use them like > regular ones. > > Can we compile it? > > % perlcc -b -o /tmp/Carp.pm `perl -MCarp -le 'print > $INC{"Carp.pm"}'` > [random noises deleted] > [Exit 0] > > That would be a yes. Can we uncompile it? > > % perl -MO=Deparse /tmp/Carp.pm > /tmp/Carp.pm syntax OK > % perl -MO=Deparse,-p /tmp/Carp.pm > /tmp/Carp.pm syntax OK
5.8.6 and blead both fail with: 0 windhund ~/tmp$ perl -MO=Deparse Carp.pm Can't locate object method "sibling" via package "B::NULL" at /sw/lib/perl5-core/5.8.6/darwin-thread-multi-2level/B/Deparse.pm line 1188. CHECK failed--call queue aborted. > Well, yes and no. We can uncompile other things. This one > seems unwillling, however. > > May we run it? > > % perl /tmp/Carp.pm > [Exit 0] > > Yes, we can! Can we do anything cool with it? > > % perl -e 'require "/tmp/Carp.pm"; Carp::carp("wow")' > wow at -e line 1 > require /tmp/Carp.pm called at -e line 1 > Not a CODE reference at -e line 1. > perl in free(): warning: chunk is already free. > Segmentation fault > Exit 139 This now works in 5.8.6 and blead. 0 windhund ~/tmp$ perl -I. -wle 'use Carp; print $INC{"Carp.pm"}; carp("wow")'Carp.pm wow at -e line 1