#!perl -T
+use strict;
+use warnings;
+
use Test::More tests => 33;
use Variable::Magic qw/wizard cast dispell/;
sub multi {
my ($cb, $tests) = @_;
- for (local $i = 0; $i < $n; ++$i) {
- my $res = eval { $cb->() };
- $tests->($res, $@);
+ for (my $i = 0; $i < $n; ++$i) {
+ my $res = eval { $cb->($i) };
+ $tests->($i, $res, $@);
}
}
ok(!$@, "wizard 2 creation error ($@)");
multi sub {
+ my ($i) = @_;
$w[$i]
}, sub {
- my ($res, $err) = @_;
+ my ($i, $res, $err) = @_;
ok(defined $res, "wizard $i is defined");
ok(ref($w[$i]) eq 'SCALAR', "wizard $i is a scalar ref");
};
my $a = 0;
multi sub {
+ my ($i) = @_;
cast $a, $w[$i];
}, sub {
- my ($res, $err) = @_;
+ my ($i, $res, $err) = @_;
ok(!$err, "cast magic $i croaks ($err)");
ok($res, "cast magic $i invalid");
};