Mail Archives: cygwin/2002/10/15/15:23:21
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/
- Raw text -