my @cmd = $check{SHELL}; if (exists $check{SH_OPTS}) { push @cmd, ref $check{SH_OPTS} eq 'ARRAY' ? @{$check{SH_OPTS}} : $check{SH_OPTS}; } push @cmd, $check{CHECK_CODE}; if (exists $check{CODE_OPTS}) { push @cmd, ref $check{CODE_OPTS} eq 'ARRAY' ? @{$check{CODE_OPTS}} : $check{CODE_OPTS}; } open my $fh, '-|', @cmd or die "Can't run check code: $!"; #...