Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re^3: Perl 5 interpreter

by ikegami (Pope)
on Jan 12, 2011 at 08:48 UTC ( #881844=note: print w/ replies, xml ) Need Help??

in reply to Re^2: Perl 5 interpreter
in thread Perl 5 interpreter

Definitely not all. Some macros ("dXXX;") create and initialise variables used by one or more other macros. Those macros and the macros that use the variables declared by them couldn't be made into functions without a cost.

In fact, these are the only macros that gave me any confusion. The documentation isn't clear as ti what declares what and what uses what. The only other time I've had to look into the macros was to see what exactly is an acceptable input. (e.g. Is NULL ok?)

I'm not sure how much more readable inlinable functions would be. Looking down seven levels of functions is no easier than looking down seven level of macros. I imagine most debuggers are better at handling inline functions than macros, though.

Comment on Re^3: Perl 5 interpreter
Download Code
Replies are listed 'Best First'.
Re^4: Perl 5 interpreter
by Anonymous Monk on Jan 12, 2011 at 09:02 UTC
    Are Macros only such ways of creating abstractions? Because they are more of a kind of reusable templating stuff. Here one has to do work on more text replacement and substitution and then work on its logic.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (4)
As of 2015-11-28 08:16 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (739 votes), past polls