my $pid = fork;
die "can't fork: $!" if ! defined $pid;
if ( $pid ) {
# parent
}
else {
# child
}
####
use 5.010;
my $pid = fork // die "Can't fork: $!";
if ...
####
use 5.010;
given ( fork ) {
when ( undef ) {
die "Can't fork: $!";
}
when ( !$_ ) {
# child
}
default {
# parent
my $child_pid = $_;
}
}
####
use 5.010;
given ( wantarray ) {
when ( undef ) {
return; # void context
}
when ( !$_ ) {
return 'scalar context';
}
default {
return qw( list context );
}
}
####
return wantarray ? qw( list context ) :
defined wantarray ? 'scalar context';
####
return tfu( wantarray,
true => sub { 'true' },
false => sub { 'false' },
undef => sub { 'undef' }, );
sub tfu {
my $value = shift @_;
my %todo_for = @_;
return $value ? $todo_for{ true }->() :
defined $value ? $todo_for{ false }->() :
$todo_for{ undef }->();
}