NAME
Parallel::Pipes::App - friendly interface for Parallel::Pipes
SYNOPSIS
use
Parallel::Pipes::App;
my
@result
= Parallel::Pipes::App->
map
(
num
=> 3,
work
=>
sub
{
my
$task
=
shift
;
$task
* 2 },
tasks
=> [1, 2, 3, 4, 5],
);
# @result is ( 2, 4, 6, 8, 10 )
DESCRIPTION
Parallel::Pipes::App provides friendly interfaces for Parallel::Pipes.
METHODS
Parallel::Pipes::App provides 2 class method:
map
my
@result
= Parallel::Pipes::App->
map
(
num
=>
$num
,
work
=>
$work
,
tasks
=> \
@task
,
);
Process @task
by $work
in $num
pre-forked child processes, and get @result
. This is almost the same as
my
@result
=
map
{
$work
->(
$_
) }
@task
;
except that $work
is executed in a child process, not in the current process.
run
Parallel::Pipes::App->run(
num
=>
$num
,
work
=>
$work
,
tasks
=> \
@task
,
before_work
=>
$before_work
,
after_work
=>
$after_work
,
);
run
is a more generic form of map
. In fact, we can write map
by using run
:
my
@result
;
Parallel::Pipes::App->run(
num
=>
$num
,
work
=>
$work
,
tasks
=> \
@task
,
before_work
=>
sub
{},
after_work
=>
sub
{
push
@result
,
$_
[0] },
);
AUTHOR
Shoichi Kaji <skaji@cpan.org>
COPYRIGHT AND LICENSE
Copyright 2016 Shoichi Kaji <skaji@cpan.org>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.