/usr/share/doc/libvariable-magic-perl/examples
NameSizeModeActions
copy.pl3860755editdlrm
magic.pl6500755editdlrm
synopsis.pl8080755editdlrm
uvar.pl6430755editdlrm
vm_vs_tie.pl9570755editdlrm
Edit: /usr/share/doc/libvariable-magic-perl/examples/magic.pl (650B)
#!/usr/bin/perl use strict; use warnings; use lib qw; use Variable::Magic qw; sub foo { print STDERR "got ${$_[0]}!\n" } my $bar = sub { ++${$_[0]}; print STDERR "now set to ${$_[0]}!\n"; }; my $a = 1; { my $wiz = wizard get => \&foo, set => $bar, free => sub { print STDERR "deleted!\n"; }; cast $a, $wiz, qw; ++$a; # "got 1!", "now set to 3!" dispell $a, $wiz; cast $a, $wiz; my $b = 123; cast $b, $wiz; } # "deleted!" my $b = $a; # "got 3!" $a = 3; # "now set to 4!" $b = 3; # (nothing)