++ for your post.
These are my 0.02€ to your rule1.
I am very much a fan of using modules, which make the simple things even simpler, e.g. the List::* modules.
However modules should not be chosen, just because the name smells right.
In the end you can shoot yourself in the knee, e.g. use
File::Copy to copy executable files and end up with permissions reset to default ( see
http://abigail1.hates-
software.com/2005/09/21/0692681a.html).
print+qq(\L@{[ref\&@]}@{['@'x7^'!#2/"!4']});