my ($shell, $code) = mystical_extraction_goes_here($check{CHECK_CODE}); open my $fh, '-|', $shell, -c => $code or die "Can't run shell $shell: $!"; my @return = <$fh>; close $fh; #### 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: $!"; #...