load_or_skip_all 'Socket', '0', [ ];
}
- return capture => \&capture;
+ return (
+ capture => \&capture,
+ capture_perl => \&capture_perl,
+ );
}
# Inspired from IPC::Cmd
}
}
+sub capture_perl {
+ my $code = shift;
+
+ if ($code =~ /"/) {
+ die 'Double quotes in evaluated code are not portable';
+ }
+
+ fresh_perl_env {
+ my @perl = @_;
+ capture @perl, '-e', $code;
+ };
+}
+
sub init_threads {
my ($pkg, $threadsafe, $force_var) = @_;