> [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

Reply via email to