http://www.perlmonks.org?node_id=407735

Is there a point beyond which layers of abstraction are a bad thing for new Perl programmers? Take, for example Class::DBI. Is it a good idea to teach new programmers the use of this module rather than DBI + SQL, considering they might not learn how Perl connects with the database if abstraction intervenes too soon? I can see the point of going straight in with CGI.pm since it takes care of some very gory details but I'm not sure about others. As abstraction becomes more sophisticated it certainly aids productivity but shouldn't we also consider what is lost, ie. a root connection with core Perl code? With some modules, such as Maypole for example, aren't we in danger of becomeing Maypole programmers rather than Perl programmers?