- You can replace the eval abomination with a single call to do.
- But with eval and not checking its return value, you have no idea whether there was an error in the module. You can drivel about its advantages and disadvantages (see your points 3, 3b, and 3c), but especially given the "new job" requirement, I'd be very cautious throwing around dangerous advice.
- Re 4: You can add code to a normal module and it will run when the module is first used or required.
- You should read about scope in Perl. Lexical variables aren't accessible outside of their scope.
- Re 7: Who told you Perl changed the way it interprets prototypes? Why do you need to include FUD into your post?
- Why are you using a bold font? It looks like speaking very loudly, which is impolite and disrespectful.
Update: I know what we're talking about. I posted Wrong + Right = Even Worse 10 years ago.
map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]