- Code (or string) references to the corresponding magic callbacks.
- You don't have to specify all of them : the magic associated with
- undefined entries simply won't be hooked. In those callbacks, $_[0]
- is always a reference to the magic object and $_[1] is always the
- private data (or "undef" when no private data constructor was
- supplied).
+ Code (or string) references to the respective magic callbacks. You
+ don't have to specify all of them : the magic corresponding to
+ undefined entries will simply not be hooked.
+
+ When those callbacks are executed, $_[0] is a reference to the magic
+ variable and $_[1] is the associated private data (or "undef" when
+ no private data constructor is supplied with the wizard). Other
+ arguments depend on which kind of magic is involved :
+
+ * *len*
+
+ $_[2] contains the natural, non-magical length of the
+ variable (which can only be a scalar or an array as *len*
+ magic is only relevant for these types). The callback is
+ expected to return the new scalar or array length to use, or
+ "undef" to default to the normal length.