[RndTbl] (Simple?) Perl question

Gilbert E. Detillieux gedetil at cs.umanitoba.ca
Mon Dec 12 13:53:00 CST 2016


Yup, makes sense now...

After this line...

$cmd =  "./psexec.exe \\\\\\\\" . $server_name

... the cmd variable will contain "./psexec.exe \\\\server" (4 
backslashes.  On running this line...

my $output = `$cmd`

... the shell will see "./psexec.exe \\\\server", and the command will 
see (after shell quote processing) argv[1] set to "\\server".

Each level of "\" escape processing requires that you double the number 
of "\" characters entered to get one through.  If you want to end up 
with 2, after 2 levels, you need 8.

Gilbert

On 12/12/2016 1:43 PM, Kevin McGregor wrote:
> I should add that this gets run immediately after via
>
> my $output = `$cmd`
>
> if that makes any difference.
>
> On Mon, Dec 12, 2016 at 1:40 PM, Kevin McGregor
> <kevin.a.mcgregor at gmail.com <mailto:kevin.a.mcgregor at gmail.com>> wrote:
>
>     I'm trying to decipher some Perl code which runs on a Windows
>     server, and I ran into this:
>
>     $cmd =  "./psexec.exe \\\\\\\\" . $server_name
>
>     I think the idea is to end up with
>
>     ./psexec.exe \\server
>
>     but WTF eight backslashes? Does that make any sense? If so, can
>     someone ELI5?
>
>     Kevin

-- 
Gilbert E. Detillieux		E-mail:	<gedetil at cs.umanitoba.ca>
Dept. of Computer Science	Web:	http://www.cs.umanitoba.ca/~gedetil/
University of Manitoba		Phone:	(204)474-8161
Winnipeg MB CANADA  R3T 2N2	Fax:	(204)474-7609


More information about the Roundtable mailing list