X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FScope%2FUpper.pm;h=04f26fdd395262f4d2fe5d97bed5abe66fa4d6cb;hb=68a5aefb3004e65311710b45280e4ec453aa540e;hp=e36cbca5531e94fe1ce11339f0ed37b39d5746ed;hpb=aadd0157199345b7e2570fa1d45d998479691b5e;p=perl%2Fmodules%2FScope-Upper.git diff --git a/lib/Scope/Upper.pm b/lib/Scope/Upper.pm index e36cbca..04f26fd 100644 --- a/lib/Scope/Upper.pm +++ b/lib/Scope/Upper.pm @@ -1,5 +1,7 @@ package Scope::Upper; +use 5.006_001; + use strict; use warnings; @@ -9,13 +11,13 @@ Scope::Upper - Act on upper scopes. =head1 VERSION -Version 0.19 +Version 0.26 =cut our $VERSION; BEGIN { - $VERSION = '0.19'; + $VERSION = '0.26'; } =head1 SYNOPSIS @@ -182,7 +184,7 @@ execute a subroutine in the setting of an upper subroutine stack frame with L and L. +uniquely identify contexts with L and L. =back @@ -290,7 +292,7 @@ A glob, in which case C<$key> is ignored and the call is equivalent to C or C<'%'>, for which the call is equivalent to respectiveley C and C. +A string beginning with C<'@'> or C<'%'>, for which the call is equivalent to respectively C and C. =item * @@ -305,7 +307,7 @@ C<$key> is ignored. unwind; unwind @values, $context; -Returns C<@values> I the subroutine, eval or format context pointed by or just above C<$context>, and immediately restart the program flow at this point - thus effectively returning C<@values> to an upper scope. +Returns C<@values> I the subroutine, eval or format context pointed by or just above C<$context>, and immediately restarts the program flow at this point - thus effectively returning C<@values> to an upper scope. If C<@values> is empty, then the C<$context> parameter is optional and defaults to the current context (making the call equivalent to a bare C) ; otherwise it is mandatory. The upper context isn't coerced onto C<@values>, which is hence always evaluated in list context. @@ -325,7 +327,7 @@ You can use L to handle these cases. yield; yield @values, $context; -Returns C<@values> I the context pointed by or just above C<$context>, and immediately restart the program flow at this point. +Returns C<@values> I the context pointed by or just above C<$context>, and immediately restarts the program flow at this point. If C<@values> is empty, then the C<$context> parameter is optional and defaults to the current context ; otherwise it is mandatory. L differs from L in that it can target I upper scope (besides a C substitution context) and not necessarily a sub, an eval or a format. @@ -351,7 +353,7 @@ You can use the fifth value returned by L to handle context coerc leave @values; Immediately returns C<@values> from the current block, whatever it may be (besides a C substitution context). -C is actually a synonym for C, while C is a synonym for C. +C is actually a synonym for C, while C is a synonym for C. Like for L, you can use the fifth value returned by L to handle context coercion. @@ -381,7 +383,7 @@ will rightfully set C<$num> to C<26>. Gives information about the context denoted by C<$context>, akin to what L provides but not limited only to subroutine, eval and format contexts. When C<$context> is omitted, it defaults to the current context. -The values returned are, in order : +The returned values are, in order : =over 4 @@ -603,7 +605,7 @@ The context of the current scope. =head2 Getting a context from a context For any of those functions, C<$from> is expected to be a context. -When omitted, it defaults to the the current context. +When omitted, it defaults to the current context. =head3 C @@ -787,17 +789,17 @@ when the runloop callback is replaced by another module. In those three cases, L will look for a C statement in its callback and, if there is one, throw an exception before executing the code. -Moreover, in order to handle C statements properly, L currently has to suffer a run-time overhead proportional to the size of the the callback in every case (with a small ratio), and proportional to the size of B the code executed as the result of the L call (including subroutine calls inside the callback) when a C statement is found in the L callback. +Moreover, in order to handle C statements properly, L currently has to suffer a run-time overhead proportional to the size of the callback in every case (with a small ratio), and proportional to the size of B the code executed as the result of the L call (including subroutine calls inside the callback) when a C statement is found in the L callback. Despite this shortcoming, this XS version of L should still run way faster than the pure-Perl version from L. =head1 DEPENDENCIES -L 5.6. +L 5.6.1. A C compiler. This module may happen to build with a C++ compiler as well, but don't rely on it, as no guarantee is made in this regard. -L (core since perl 5.006). +L (core since perl 5.6.0). =head1 SEE ALSO @@ -839,7 +841,7 @@ Thanks to Shawn M. Moore for motivation. =head1 COPYRIGHT & LICENSE -Copyright 2008,2009,2010,2011,2012 Vincent Pit, all rights reserved. +Copyright 2008,2009,2010,2011,2012,2013,2014,2015 Vincent Pit, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.