NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.
All the Perl that's Practical to Extract and Report
Stories, comments, journals, and other submissions on use Perl; are Copyright 1998-2006, their respective owners.
why not attributes? (Score:1)
my $a : watch;
Beccause I'm following the non-intrusive path. (Score:1)
I mean look at the following code
#use MyDebug; my $a;#!watch($a)! for my $i (1..10) { $a*=$i; } print $a;This is perfectly valid code.
Now If I uncomment the 'use Mydebug;' line it will alsos works,
And I'll get a message each time $a is accessed.
If I understand well the Attribute::Handlers module, there's no easy way to turn on/off the features.
(There will be the 'use AttribDecl;' line and the code will be crippled with ': watch;')
In the end the only solution I see will be to always use the AttrDecl modules and turn on/off the debug feature via a variable which is not much different to my mind from using the usual $DEBUG var with debug code or the way Carp::Assert works...
The only usefulness would be, IMHO, the autotie usage which could be used behind the scene, but as I manage to do it 'by hand' and beccause as it's hidden, elegance/simplicity isn't a requirement (Did I really say that !?!?) I see no reason to add Attribute::Handlers to MyDebug's required modules.
But as you're not the first person telling me that, I start to wonder if I don't miss something or even if this I'm the only one seeing the usefulness/beauty of the non-intrusive interface.
Reply to This
Parent
Re:Beccause I'm following the non-intrusive path. (Score:1)
But appearances count
Plus with attributes typos will be caught (like "wathc") whereas if its in a comment there's no validation. So it has the additional nicety of being a bit more formal.
Re:Beccause I'm following the non-intrusive path. (Score:1)
Point taken...
You're totally right on this.
It's quite hard to find the balance between a simple clean syntax and a syntax which could be clearly distinguished from "normal" comments.
I clearly emphazized the later...
Any suggestion is welcome, I wonder if 'watch($a)' anywhere in a comment wouldn't be enough...
BTW: What would be your proposition for this module's name ?