Why call it a pragma and not just a module?
Because tradition holds that pragmatic modules normally do something other than the normal importing of functions that modules do (i.e. base, fields, etc.). The classes name immediately communicates that this is not a normal module and to expect a syntax specific to the pragma rather than the normally expected list of functions. § The short, lowercase name also seemed very sensible to match the name of the pragma to the classes run time function used for dynamic class manipulation. Both expect exactly the same argument syntax. § use classes name=>’MyClass’; classes-name=>’MyClass’; § It also makes using the classes:: utilities nice: § $event->classes::dump; $event->classes::id; use classes name=>’MyClass’, new=>’classes:new_init’… § • Why not allow for different constructor names? Why only new? Because we really don’t need dozens of different constructor names. Using new is a best practiced followed not only by most of the Perl community but other languages as well. § See Give every