The Perl Toolchain Summit 2025 Needs You: You can help 🙏 Learn more

use strict;
use Test::More tests => 5;
BEGIN {
use_ok('Async::Defer');
}
my @ret = ();
sub pusher {
my $val = shift;
return sub {
my ($d, $param) = @_;
push(@ret, $val);
$param ||= 0;
$d->done($param + $val);
};
}
my $defer = new_ok('Async::Defer');
lives_ok { $defer->do(pusher(1), pusher(2), pusher(3)) } 'do() pushers.';
lives_ok {
$defer->run(sub { my $sum = shift; push(@ret, $sum) });
} 'run() accepts a coderef';
is_deeply(\@ret, [1, 2, 3, 6], 'ret OK');
## done_testing();