I would wonder whether Attribute::Property
suffers from the same issue that came up at How to redefine subroutines with Attribute::Handlers that run at BEGIN time?
(subsequently reported to p5p here
). Namely that attribute wrapping of functions normally is done in INIT or CHECK blocks, but those are only run once in the lifetime of the interpreter.
Therefore code which is lazily loaded by do, require, AUTOLOAD, Apache::Reload etc won't have existed at the right time for the attributes to actually have been properly installed, therefore leading to mysteriously failing code.
Basically what I am saying is that attributes, while they certainly win on the "cool tricks" scale, are not something that I really want to depend on.