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/

Reply via email to