On 7/4/07, Joseph L. Casale <[EMAIL PROTECTED]> wrote: snip
if ($state == 'on') { 'vmware-cmd $_[0] stop soft'; my $tools = `/usr/bin/vmware-cmd \"$_[0]\" gettoolslastactive -q`; chomp($tools); } while (($state == 'on') && ($tools == 1)) { sleep 30; my $tools = `/usr/bin/vmware-cmd \"$_[0]\" gettoolslastactive -q`; chomp($tools); } }
snip
I am getting two errors I think, and I don't understand them. The first is the second use of my $tools, how can I do this without causing an error? Can I just start using $tools right after without my?
The while belongs inside of the if like this: if ($state == 'on') { 'vmware-cmd $_[0] stop soft'; my $tools = `/usr/bin/vmware-cmd \"$_[0]\" gettoolslastactive -q`; chomp($tools); while ($tools == 1) { sleep 30; $tools = `/usr/bin/vmware-cmd \"$_[0]\" gettoolslastactive -q`; chomp($tools); } } snip
The second I am sure is the darn () in the file names I am feeding into the function. Can someone shed some light :) I need to call the first indices of many arrays that get passed into this function, so I was thinking $_[0] was what I need. Problem is that the execution of vmware-cmd needs the value of $_[0] passed to it inside quotes.
snip In your example $_[0] is "/vmfs/volumes/467f06a5-7d59c067-35cb-0007e9153886/Web & DNS (Win2003 Std x32)/Web & DNS (Win2003 Std x32).vmx" If you want to perform stop_it on or with many values you will need to put a loop outside or inside the sub. Given the way your code is currently written this should work: stop_it($_) for @DNS; -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/