|Think about Loose Coupling|
Thank you for your feedback, you win 1 brownie point for reminding me to ban weak references!
I'm guessing you didn't actually read through the commandments, since everything you listed (except weak refs, now added to 21) is already covered:
LMPC #21. Thou Shalt Not Use Typeglobs, Code References, Or Weak References
LMPC #23. Thou Shalt Not Use Aliased, Non-Descriptive, Special (%ENV, %SIG, etc), Or Punctuation Variables ($_, @_, %!, $@, $$, $[, etc)
LMPC #45. Thou Shalt Not Use Regular Expressions, Smart Match, q Quoting Mechanisms, Unicode/UTF-8, Or String Interpolation
PBP #246. Donít tie variables or filehandles.
LMPC #35. Thou Shalt Not Use Taint Mode
LMPC #15. Thou Shalt Not Use Deprecated (Array Value Exists, etc) Or Experimental Perl Features (Lvalue Subroutines, Attributes Pragma, etc)
LMPC #17. Thou Shalt Not Use Dynamic-Type Data Or Auto-Vivification
The RPerl compiler has 2 data modes: C/C++ ops & Perl data, and C/C++ ops & C/C++ data. When using the Perl data structures, we can actually keep the magic bits active if we want. Note, my use of the term "magic" refers to both the specific so-named magic bits attached to Perl data structures, as well as Perl's wacky/weird/complex operations in general.
Also, we can use the "no magic;" pragma to turn off magic for 1 subroutine at a time, which means we can mix low-magic RPerl code (fast) with high-magic Perl code (maybe less fast), giving us the best of both worlds!
Maybe you want to actually look at the things I wrote and perhaps even download some RPerl code?
In reply to Re^2: Perl 5 Optimizing Compiler, Part 9: RPerl.org & The Low-Magic Perl Commandments