in reply to How to open a pipe from CMD if CMD has quotes?
What makes you think it "fails to pass"? Works fine for me.
Makefile:
all: echo NODEBUG=$(NODEBUG) echo ADDED_CFLAGS=$(ADDED_CFLAGS)
655027.pl:
my $cmd = q|nmake /s NODEBUG=1 "ADDED_CFLAGS=/DCOST_EN_US /DPAYMENT_CR +EDIT_CARD"|; open(my $fr_nmake, '-|', "$cmd 2>&1") or die; print <$fr_nmake>; close($fr_nmake);
Output:
>perl 655027.pl Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. NODEBUG=1 ADDED_CFLAGS=/DCOST_EN_US /DPAYMENT_CREDIT_CARD
On a non-Windows system, you'd do:
my @cmd = ('nmake', '/s', 'NODEBUG=1', 'ADDED_CFLAGS=/DCOST_EN_US /DPA +YMENT_CREDIT_CARD'); my $cmd = join ' ', map quotemeta, @cmd; open(my $fr_nmake, '-|', "$cmd 2>&1") or die; print <$fr_nmake>; close($fr_nmake);
|
|---|