$ perl -v
This is perl 5, version 14, subversion 2 (v5.14.2) built for darwin-th
+read-multi-2level
...
$ uname -a
Darwin ganymede 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:
+48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64
It would appear that I gave you something of a bum steer regarding escaping the single quotes - sorry about that. Removing the two backslashes before the single quotes does not alter the outcome for me:
$ cat pm_sh_escape.pl
#!/usr/bin/env perl
use strict;
use warnings;
my $cmd = "printf 'I\\x27ll'";
print $cmd . "\n";
print `$cmd` ."\n";
$ pm_sh_escape.pl
printf 'I\x27ll'
I'll
Checking directly in the shell, I get the same result as you:
$ printf 'I\x27ll'
I'll
Unfortunately, that all adds up to an inability to reproduce your problem.
|