use IO::AIO; aio_open "/etc/passwd", O_RDONLY, 0, sub { my $fh = shift or die "/etc/passwd: $!"; ... }; aio_unlink "/tmp/file", sub { }; aio_read $fh, 30000, 1024, $buffer, 0, sub { $_[0] > 0 or die "read error: $!"; }; # version 2+ has request and group objects use IO::AIO 2; aioreq_pri 4; # give next request a very high priority my $req = aio_unlink "/tmp/file", sub { }; $req->cancel; # cancel request if still in queue my $grp = aio_group sub { print "all stats done\n" }; add $grp aio_stat "..." for ...;