All, This email refers to an RT ticket I've filed that I think warrants some discussion (https://rt.cpan.org/Public/Bug/Display.html?id=44873).
I've created a rudimentary ORM that maps attributes in a class to columns in a table and maps an instance of a class to a table row. This has proven problematic because the set of valid column names is different from the set of valid attribute names. For instance, I want a column named "0" (the number zero). While that is valid as a mysql column, that is invalid as an attribute name. The only reason I can fathom that 0 is prohibited from being an attribute name is because $obj->0 is invalid perl, but even so you can still access the data via $meta or install another accessor which is valid perl. I'd like for the following validation in the Class::MOP::Attribute constructor to be removed: (defined $name && $name) || confess "You must provide a name for the attribute"; Is there any reason Class::MOP::Attribute should enforce this? Dan