The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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";
}