use Callback;
print "1..7\n";
package TEST;
sub make { bless {}, shift }
sub pr6 {
my $self = shift;
my ($d) = @_;
print "ok $d\n";
}
package main;
my $c0 = new Callback (\&pr0);
my $c1 = new Callback (\&pr1, 2);
my $c2 = new Callback (\&pr1, 3);
my $c3 = new Callback (\&pr1);
my $c4 = new Callback (\&pr2, 1);
my $obj = TEST->make;
my $c5 = new Callback ($obj, 'pr6', 6);
my $c6 = new Callback ($obj, 'pr6');
$c0->call();
$c1->call();
$c2->call(5);
$c3->call(4);
$c4->call(4);
$c5->call();
$c6->call(7);
sub pr0
{
print "ok 1\n";
}
sub pr1
{
my ($a) = @_;
print "ok $a\n";
}
sub pr2
{
my ($a, $b) = @_;
my $s = $a + $b;
print "ok $s\n";
}