Codebase list libcapture-tiny-perl / 4f33802
fix how unicode is passed to system() call David Golden 15 years ago
1 changed file(s) with 6 addition(s) and 6 deletion(s). Raw diff Collapse all Expand all
4141
4242 my %texts = (
4343 short => 'Hello World',
44 multiline => "First line\nSecond line\n",
45 ( $] < 5.008 ? () : ( unicode => "Hi! \x{263a}\n") ),
44 multiline => 'First line\nSecond line\n',
45 ( $] < 5.008 ? () : ( unicode => 'Hi! \x{263a}\n') ),
4646 );
4747
4848 #--------------------------------------------------------------------------#
5151
5252 my %methods = (
5353 perl => sub { eval $_[0] },
54 sys => sub { system($^X, '-e', "eval q{$_[0]}") },
54 sys => sub { system($^X, '-e', $_[0]) },
5555 );
5656
5757 #--------------------------------------------------------------------------#
5959 my %channels = (
6060 stdout => {
6161 output => sub { _binmode($_[0]) . "print STDOUT qq{STDOUT:$texts{$_[0]}}" },
62 expect => sub { "STDOUT:$texts{$_[0]}", "" },
62 expect => sub { eval "qq{STDOUT:$texts{$_[0]}}", "" },
6363 },
6464 stderr => {
6565 output => sub { _binmode($_[0]) . "print STDERR qq{STDERR:$texts{$_[0]}}" },
66 expect => sub { "", "STDERR:$texts{$_[0]}" },
66 expect => sub { "", eval "qq{STDERR:$texts{$_[0]}}" },
6767 },
6868 both => {
6969 output => sub { _binmode($_[0]) . "print STDOUT qq{STDOUT:$texts{$_[0]}}; print STDERR qq{STDERR:$texts{$_[0]}}" },
70 expect => sub { "STDOUT:$texts{$_[0]}", "STDERR:$texts{$_[0]}" },
70 expect => sub { eval "qq{STDOUT:$texts{$_[0]}}", eval "qq{STDERR:$texts{$_[0]}}" },
7171 },
7272 );
7373