Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Message-ID: <50A89B19AEAAD411B9D200A0C9FB5699722CD6@craius.cportcorp.com> From: Peter Buckley To: "'cygwin AT cygwin DOT com'" Subject: backslashes and perl Date: Mon, 7 May 2001 14:34:33 -0400 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: text/plain; charset="iso-8859-1" I don't think I am asking the question right- What I really need is for the new perl to work with an NT command shell. It used to- when I was using Cygwin B20 and Perl 5.001. Just like I can set MAKE_MODE=win32, I need a PERL_MODE=win32. I want my new cygwin and new perl to accept paths that contain backslashes, and still treat them as paths. The NT command shell is going to pass perl a path that contains backslashes, and I need to switch on the flag that will make perl treat the path like a win32 path. Thanks, Peter Sounds like what you really need is to make sure that your script runs in a POSIX environment. Then you can use the /, and everything would be okey-dokey.... There is a cygpath function for coders, so why couldn't you create a Perl function/package that does this, and always call it before you actually reference your object. This function would mangle the POSIX style name into a system specific style name based upon the runtime environment it finds. On Fri, 4 May 2001 16:09:06 -0400, Peter Buckley wrote: >The thing is, this perl script used to work with perl 5.001 unofficial >pathlevel 1m. It is just since I upgraded to perl 5.6.1 with 1 registered >patch that I started having this problem. The script/makefile in question >has to work on UNIX, NT, and Win2k. And backslashes are a necessity with a >Win2k command shell. I am testing the new cygwin stuff before we start using >it company wide, and eventually recommend it to our customers. I would like >to find the flag or option to perl so I can use backslashes, instead of more >ifdef-ing for all my variables in NT. > >Thanks, >Peter > >-----Original Message----- >From: Mark Paulus [mailto:commpg AT yahoo DOT com] >Sent: Friday, May 04, 2001 3:57 PM >To: cygwin AT cygwin DOT com; Peter Buckley >Subject: Re: backslashes stripped in perl > > >have you tried using \\ where you are using \? Perl is probably seeing >the \ as an escape character, so you need to escape the \ to preserve >it. You may need to play with varying levels of \ to get it right >depending on how many downstream filters are looking at the string >(Check out some of Don Libes discussions about backslashes in his >Exploring Expect book) > > >On Fri, 4 May 2001 15:44:28 -0400, Peter Buckley wrote: > >>I am passing a parameter that contains backslashes in the path to a perl >>script. >>I am calling the perl script from a makefile macro. The line in the >makefile >>is >> >>target : >> $(PERL) myscript.pl $(ARG0) $(ARG1) >> >>And in the perl script I have the lines >> >>$VARIABLE = @ARGV[0]; >>cmd "$VARIABLE -o $OPTION -c $PATH/path/config1 -batch"; >> >>When $(ARG0) is C:\path\executable.exe, I get the error >> >>C:pathexecutable.exe: not found >> >>It is stripping the backslashes out. >>I know that it works with forward slashes, >>and I had similar problems with make before this >>(I found out how to set MAKE_MODE = win32). >> >>I have to use backslashes in the path. >>I didn't find anything when I searched for >>backslash perl >>in the archives, and I didn't see an entry for perl >>in the FSF online manuals. >> >>I am using the NT4.0 SP5 cmd.exe as my shell. I get this failure >>whether I explicitly set the SHELL environment variable or >>not. >> >>Thanks in advance for any help, >> >>Peter Buckley Peter Buckley C-Port Corporation, a Motorola Company One High Street No. Andover, MA 01845 978-773-2490 -- Want to unsubscribe from this list? Check out: http://cygwin.com/ml/#unsubscribe-simple