This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Perl system() and Cygwin


Hello,

I'm experiencing some non-intuitive behavior when -- under Cygwin Perl -- calling system commands. The FAQ alludes to "differences" between Cygwin and systems like Linux.. this might be another one of these differences, or it might be dumb-user-error.

I have a solution I can live with. I just don't like not knowing what breaks my other attempts.

I want to do the Perl equivalent of 
net use Q: \\\\e04-3000\\foo foo /user:foo

This always works in bash, running 'net' and everything else is an argument. This works under Cygwin /bin/bash just fine.

In Perl, you can call commands like so:
 	system("net use Q: \\\\e04-3000\\foo foo /user:foo");
This fails, with the net command returning Error 67 (resource not found). Unfortunately there's no way it tells me what it THINKS it saw.

This also fails:
system("net", "use Q: \\\\e04-3000\\foo foo /user:foo");

*** This WORKS:
system("net", "use", "Q:", "\\\\e04-3000\\foo", "foo", "/user:foo");
But it's *evil*. 

Since the above works, I try less evil-looking code:
$cmd = "net use Q: \\\\e04-3000\\foo foo /user:foo"
$mountcode = system (split(' ',$cmd));
to simulate the list that worked. This also fails.


I've been executing code like this (all one string) all along under Linux & Perl. I'm assuming Perl's system() on Cygwin executes CMD.EXE as a subshell (this true?) and, well, this is "one of those differences"

Any Thoughts? Thanks.

-Scott




--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]