#!perl -w
use strict;
use Test;
BEGIN { plan tests => 6 };
ok(capture($^X, 't/args.plx'), '');
ok(capture($^X, 't/args.plx', "foo\nbar", 'baz'),
qq{'foo\nbar'\n'baz'\n});
ok(capture('./pperl', 't/args.plx'), '');
ok(capture('./pperl', 't/args.plx', "foo\nbar", 'baz'),
qq{'foo\nbar'\n'baz'\n});
`./pperl -k t/args.plx`;
`./pperl t/env.plx`; # run it once so there's a $ENV{PATH} about
%ENV = ( foo => "bar\nbaz",
"quu\nx" => "wobble",
null => '');
ok(capture($^X, 't/env.plx'),
qq{'foo' => 'bar\nbaz'\n'null' => ''\n'quu\nx' => 'wobble'\n});
ok(capture('./pperl', 't/env.plx'),
qq{'foo' => 'bar\nbaz'\n'null' => ''\n'quu\nx' => 'wobble'\n});
`./pperl -k t/env.plx`;
sub capture {
my $pid = open(FH, "-|");
my $result;
splice(@_, 1, 0, '-Iblib/lib', '-Iblib/arch');
if ($pid) { local $/; $result = <FH>; close FH }
else { exec(@_) or die "failure to exec $!"; }
return defined($result) ? $result : '';
}
syntax highlighted by Code2HTML, v. 0.9.1