use strict;
use warnings;
my $in_fn = 'in.ps';
my $out_fn = 'out.pdf';
open my $fh, '>', $in_fn;
print $fh <<'END';
%!PS
%
% skipped
%
showpage
END
close $fh;
system 'gswin32c', '-q', '-sDEVICE=pdfwrite', '-o', $out_fn, $in_fn;
# now do something useful with out.pdf
####
use strict;
use warnings;
use IPC::Run3;
run3 [
'gswin32c',
'-q',
'-sDEVICE=nullpage',
'-'
],
\ 'syntax error!',
\ my $out,
\ my $err,
{
binmode_stdin => 1,
binmode_stdout => 1,
};
print "*** STDOUT ***\n$out\n";
print "*** STDERR ***\n$err\n";
####
use strict;
use warnings;
use IPC::Open2;
my ( $in, $out, );
my $pid = open2 $out, $in, 'gswin32c -q -sDEVICE=nullpage -';
$in-> autoflush( 1 );
print $in "syntax error!\n\cZ\n";
close $in;
print do { local $/; <$out> };
close $out;
waitpid( $pid, 0 );