- The functions "reap", "localize", "localize_elem" and "TOPLEVEL" are
- only exported on request, either individually or by the tags ':funcs'
- and ':all'.
+ The functions "reap", "localize", "localize_elem", "localize_delete",
+ "unwind" and "want_at" are only exported on request, either individually
+ or by the tags ':funcs' and ':all'.
+
+ Same goes for the words "TOP", "HERE", "UP", "DOWN", "SUB", "EVAL" and
+ "CALLER" that are only exported on request, individually or by the tags
+ ':words' and ':all'.
+
+CAVEATS
+ Be careful that local variables are restored in the reverse order in
+ which they were localized. Consider those examples:
+
+ local $x = 0;
+ {
+ reap sub { print $x } => 0;
+ local $x = 1;
+ ...
+ }
+ # prints '0'
+ ...
+ {
+ local $x = 1;
+ reap sub { $x = 2 } => 0;
+ ...
+ }
+ # $x is 0
+
+ The first case is "solved" by moving the "local" before the "reap", and
+ the second by using "localize" instead of "reap".
+
+ "reap", "localize" and "localize_elem" effects can't cross "BEGIN"
+ blocks, hence calling those functions in "import" is deemed to be
+ useless. This is an hopeless case because "BEGIN" blocks are executed
+ once while localizing constructs should do their job at each run.