]> git.vpit.fr Git - perl/modules/Variable-Magic.git/blobdiff - lib/Variable/Magic.pm
This is 0.46
[perl/modules/Variable-Magic.git] / lib / Variable / Magic.pm
index c10a8057505178e62918bfae94d7bad51df0f927..141d966ab9f90ebe443deee6ba6dab8be1c3f2f5 100644 (file)
@@ -11,18 +11,18 @@ Variable::Magic - Associate user-defined magic to variables from Perl.
 
 =head1 VERSION
 
-Version 0.44
+Version 0.46
 
 =cut
 
 our $VERSION;
 BEGIN {
- $VERSION = '0.44';
+ $VERSION = '0.46';
 }
 
 =head1 SYNOPSIS
 
-    use Variable::Magic qw/wizard cast VMG_OP_INFO_NAME/;
+    use Variable::Magic qw<wizard cast VMG_OP_INFO_NAME>;
 
     { # A variable tracer
      my $wiz = wizard set  => sub { print "now set to ${$_[0]}!\n" },
@@ -159,7 +159,7 @@ It is available on your perl iff C<MGf_LOCAL> is true.
 
 =back
 
-The following actions only apply to hashes and are available iff C<VMG_UVAR> is true.
+The following actions only apply to hashes and are available iff L</VMG_UVAR> is true.
 They are referred to as C<uvar> magics.
 
 =over 4
@@ -301,11 +301,11 @@ sub wizard {
 
  my %opts = @_;
 
- my @keys = qw/data op_info get set len clear free/;
+ my @keys = qw<data op_info get set len clear free>;
  push @keys, 'copy'  if MGf_COPY;
  push @keys, 'dup'   if MGf_DUP;
  push @keys, 'local' if MGf_LOCAL;
- push @keys, qw/fetch store exists delete copy_key/ if VMG_UVAR;
+ push @keys, qw<fetch store exists delete copy_key> if VMG_UVAR;
 
  my ($wiz, $err);
  {
@@ -381,6 +381,8 @@ Evaluates to true iff the 'local' magic is available.
 =head2 C<VMG_UVAR>
 
 When this constant is true, you can use the C<fetch,store,exists,delete> callbacks on hashes.
+Initial VMG_UVAR capability was introduced in perl 5.9.5, with a fully functional implementation
+shipped with perl 5.10.0.
 
 =head2 C<VMG_COMPAT_ARRAY_PUSH_NOLEN>
 
@@ -438,7 +440,7 @@ It is similar to using inside-out objects, but without the drawback of having to
     {
      package Magical::UserData;
 
-     use Variable::Magic qw/wizard cast getdata/;
+     use Variable::Magic qw<wizard cast getdata>;
 
      my $wiz = wizard data => sub { \$_[1] };
 
@@ -573,12 +575,12 @@ All the constants are also only exported on request, either individually or by t
 
 =cut
 
-use base qw/Exporter/;
+use base qw<Exporter>;
 
 our @EXPORT         = ();
 our %EXPORT_TAGS    = (
- 'funcs' =>  [ qw/wizard cast getdata dispell/ ],
- 'consts' => [ qw/
+ 'funcs' =>  [ qw<wizard cast getdata dispell> ],
+ 'consts' => [ qw<
    MGf_COPY MGf_DUP MGf_LOCAL VMG_UVAR
    VMG_COMPAT_ARRAY_PUSH_NOLEN VMG_COMPAT_ARRAY_PUSH_NOLEN_VOID
    VMG_COMPAT_ARRAY_UNSHIFT_NOLEN_VOID
@@ -588,7 +590,7 @@ our %EXPORT_TAGS    = (
    VMG_PERL_PATCHLEVEL
    VMG_THREADSAFE VMG_FORKSAFE
    VMG_OP_INFO_NAME VMG_OP_INFO_OBJECT
/ ],
> ],
 );
 our @EXPORT_OK      = map { @$_ } values %EXPORT_TAGS;
 $EXPORT_TAGS{'all'} = [ @EXPORT_OK ];
@@ -600,10 +602,15 @@ The only way to address this would be to return a reference.
 
 If you define a wizard with a C<free> callback and cast it on itself, this destructor won't be called because the wizard will be destroyed first.
 
+In order to define magic on hash members, you need at least L<perl> 5.10.0 (see L</VMG_UVAR>)
+
 =head1 DEPENDENCIES
 
 L<perl> 5.8.
 
+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<Carp> (standard since perl 5), L<XSLoader> (standard since perl 5.006).
 
 Copy tests need L<Tie::Array> (standard since perl 5.005) and L<Tie::Hash> (since 5.002).
@@ -640,7 +647,7 @@ Tests code coverage report is available at L<http://www.profvince.com/perl/cover
 
 =head1 COPYRIGHT & LICENSE
 
-Copyright 2007,2008,2009,2010 Vincent Pit, all rights reserved.
+Copyright 2007,2008,2009,2010,2011 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.