+ Magic is Perl way of enhancing objects. This mechanism lets the user add
+ extra data to any variable and hook syntaxical operations (such as
+ access, assignment or destruction) that can be applied to it. With this
+ module, you can add your own magic to any variable without having to
+ write a single line of XS.
+
+ You'll realize that these magic variables look a lot like tied
+ variables. It's not surprising, as tied variables are implemented as a
+ special kind of magic, just like any 'irregular' Perl variable : scalars
+ like $!, $( or $^W, the %ENV and %SIG hashes, the @ISA array, "vec()"
+ and "substr()" lvalues, threads::shared variables... They all share the
+ same underlying C API, and this module gives you direct access to it.
+
+ Still, the magic made available by this module differs from tieing and
+ overloading in several ways :
+
+ * It isn't copied on assignment.
+
+ You attach it to variables, not values (as for blessed references).
+
+ * It doesn't replace the original semantics.
+
+ Magic callbacks trigger before the original action take place, and
+ can't prevent it to happen. This makes catching individual events
+ easier than with "tie", where you have to provide fallbacks methods
+ for all actions by usually inheriting from the correct "Tie::Std*"
+ class and overriding individual methods in your own class.
+
+ * It's type-agnostic.
+
+ The same magic can be applied on scalars, arrays, hashes, subs or
+ globs. But the same hook (see below for a list) may trigger
+ differently depending on the the type of the variable.
+
+ * It's mostly invisible at the Perl level.
+
+ Magical and non-magical variables cannot be distinguished with
+ "ref", "tied" or another trick.
+
+ * It's notably faster.
+
+ Mainly because perl's way of handling magic is lighter by nature,
+ and because there's no need for any method resolution. Also, since
+ you don't have to reimplement all the variable semantics, you only
+ pay for what you actually use.