]> git.vpit.fr Git - perl/modules/Variable-Magic.git/blob - samples/synopsis.pl
This is 0.64
[perl/modules/Variable-Magic.git] / samples / synopsis.pl
1 #!perl
2
3 use strict;
4 use warnings;
5
6 use Variable::Magic qw<wizard cast VMG_OP_INFO_NAME>;
7
8 {
9  my $wiz = wizard set  => sub { print "now set to ${$_[0]}!\n" },
10                   free => sub { print "destroyed!\n" };
11
12  my $a = 1;
13  cast $a, $wiz;
14  $a = 2;        # "now set to 2!"
15 }               # "destroyed!"
16
17 {
18  my $wiz = wizard data     => sub { $_[1] },
19                   fetch    => sub { $_[2] = $_[1] unless exists $_[0]->{$_[2]}; () },
20                   store    => sub { print "key $_[2] stored in $_[-1]\n" },
21                   copy_key => 1,
22                   op_info  => VMG_OP_INFO_NAME;
23
24  my %h = (_default => 0, apple => 2);
25  cast %h, $wiz, '_default';
26  print $h{banana}, "\n"; # "0", because the 'banana' key doesn't exist in %h
27  $h{pear} = 1;           # "key pear stored in helem"
28 }