Its now been roughly two to three months since the Perl 5 Enterprise Project was announced and following its reference in a node recently, I decided to check on the development to date - For those unaware of the goals of the P5EE project, they are described in depth at the project homepage. To do this, I checked out the latest CVS copy of the P5EE source tree and had a read through the core package modules developed to late.

I must say however, that I was quite put off early into this process, when I found the following in the core P5EEx::Blue::P5EE module:

# eliminate warnings about uninitialized values $SIG{__WARN__} = sub { warn @_ unless $_[0] =~ /Use of uninitialized v +alue/};

This line, trapping the __WARN__ signal and preventing the output of warnings where undefined variables are being used, seems in direct contrast the the concept of developing proven and complete code for the enterprise environment. Furthermore, the use of this code is mentioned in the P5EE perlstyle.pod, but gives no explanation for its use. eg.

Warnings and Strict All code must compile and run cleanly with "use strict" enabled and the perl "-w" (warnings) option on. If you must do something that -w or strict complains about, there are workarounds, but the chances that you really need to do it that way are remote. The one exception is the "Use of uninitialized variable" warnings. We have those disabled in, so by including "use P5EE" you are disabling that warning in your code, too, and you don't need to worry about them.

To my mind such errors represent poor initiation of code variables or failed trapping of return values from functions - Aspects of coding which should not be ignored, especially within a production environment.

Further to this, many of the modules in place within the P5EEx development tree are only placeholders at this stage, outlining what it is hoped that they will eventually perform, but with little in the way of firm code.

Please don't misinterpret this review as an attack on the P5EE project - I think this is an excellent direction for development and have subscribed to the mailing list to get up to date with the development. However at this point in time, this project is still quite embryonic and there are style and development issues which still need to be addressed. Perhaps, it can be said that the ulterior purpose behind this node, besides that stated to comment on P5EE progress, is to encourage other monks to contribute on this project - There is much which needs to be done and much that we can do to contribute.


perl -e 's&&[@.]/&&s&.com.&_&&&print'