Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: Optimise Perl code pl file

by schweini (Friar)
on Nov 28, 2003 at 12:27 UTC ( #310708=note: print w/replies, xml ) Need Help??


in reply to Optimise Perl code pl file

maybe i need more coffee, but isn't this roughly what AutoSplit and AutoLoad(?) do? they wont remove unused code, but will at least make perl not 'compile' it unless it is needed, IIRC...

Replies are listed 'Best First'.
Re: Re: Optimise Perl code pl file
by Anonymous Monk on Dec 01, 2003 at 07:26 UTC
    Thank you Monks, I wish I could contribute back some expertise, but perhaps from the nature of my post my solutions to problems might perhaps be pretty out there.

    Given our project, the scripts we want to create have pretty basic execution paths and so it is feasible to execute them to "touch" the nodes that we want to keep in the tree. I'll have a burl at the Monk suggestion to this effect above.

    I think the solution posted above this was a suggestion to use AUTOLOAD to boot only the code we want. My proposition is to produce a Perl text file which has been derived from a very large collection of shared libraries. Maybe I can use AUTOLOAD to read only the code we want, then use Deparse to "export" it. This would then give us only the code we want. Is this the implication?

    We are doing this because the OOP heirarchy we use is really vast and we want to spit out Perl files which should be very short and hopefully fairly boring and readable. At the moment they are pretty elaborate.

    As a side note, I have seen Deparse used to help de-obfuscate code. We also think this might be a good exercise as we can then audit the little scripts which are the end-point of our Perl script-writing package.

    Best,
    bobajobRob
      Deparse is not perfect and it tends to develop new bugs with new perl releases (because the structure of the optree gets changed without always remembering Deparse). It also has large areas such as closures where it just won't easily work. It also will strip all comments and pod (including copyright statements or licensing terms, which may be a legal issue).

      Update: if it is any comfort, when Deparse breaks it usually breaks badly enough to get noticed and fixed before a perl release. And it probably is your best bet for accomplishing the job (with the possible exception of figuring out some way to use AutoSplit.)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://310708]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (9)
As of 2020-05-28 08:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    If programming languages were movie genres, Perl would be:















    Results (165 votes). Check out past polls.

    Notices?