It is my understanding that attributes are handled in the compiling phase (or rather non-runtime phases)
That is consistent with my understanding as well. I personally do not have sample code to honor your specific request, but it is a good question. Absent specific code samples, discusson on this topic tends to diminishing returns.
| [reply] |
It is my understanding that attributes are handled in the compiling phase (or rather non-runtime phases) ..
Well, I disagree, but without either the knowledge of how perl works or the time to delve into the perl code, I can't back up my feeling about this. I think both compile-time *and* run-time behvaiour is affected by attributes.
I wonder if TimToady or DanS could help us out here.
Alex / talexb / Toronto
"Groklaw is the open-source mentality applied to legal research" ~ Linus Torvalds
| [reply] |
talexb,
After discovering Attribute::Handlers::Prospective and playing around with it for a while, I did find that you can trigger a piece of code to be run at any phase, to include runtime, as a result of using an attribute. What is still unclear to me is:
- How this can be accomplished without this module. The documentation on attributes is lacking in my opinion and this module was written by TheDamian using source filters afterall.
- How triggering a piece of code can make a variable read-only, as you suggested previously, or have any other effect on its behavior. The code only gets triggered once, not each time the variable/sub is accessed
So far - it still seems to me to be nothing more than a label that you can attach providing the possibility of other code to react to that label.
...but without either the knowledge of how perl works or the time to delve into the perl code
That is the point of the original question. It seems that a lot of people are in the dark. It also seems that there are a lot of assumptions about what is possible without any code backing it up. It seems to me that it shouldn't be very hard for someone that really understands attributes to post a small snippet demonstrating how to use them.
Update: Added last paragraph moments after hitting submit.
| [reply] |
| [reply] |