http://www.perlmonks.org?node_id=928405


in reply to Re: Has anyone seen perl losing arguments?
in thread Has anyone seen perl losing arguments?

Oh, I printed everything;$now_string,$start_date and $end_date. Especially when debuggin the programs, I print out everything used as input to a function, command line arguments, &c. If I assign the comand to be executed to a variable, and print that variable before executing it via back ticks or 'system', I see what is supposed to be there, but that has no effect ont he behaviour. On my other machines, it all works as expected. On this server in the cloud, it is causing problems.

  • Comment on Re^2: Has anyone seen perl losing arguments?

Replies are listed 'Best First'.
Re^3: Has anyone seen perl losing arguments?
by MidLifeXis (Monsignor) on Sep 28, 2011 at 20:15 UTC

    Ok, and what were the results? What I see in your post is that the results are undef. Perhaps it would also be useful to print the argument, as a whole, that is passed to system.

    --MidLifeXis

Re^3: Has anyone seen perl losing arguments?
by Anonymous Monk on Sep 28, 2011 at 19:56 UTC

      Thanks for your help

      No, I didn't dumper it. rather, I just print intermediate results, until the program has been shown to be working OK.

      The shell is Windows Server Web's cmd

      Here are the contents of my IPC.test.pl script:

      use strict; use warnings; use IPC::System::Simple qw(system systemx capture capturex); $| = 1; my $cmd = 'argv.test.pl qwerty asdfghjk zxcv'; my $op = `$cmd`; print "==============\n",$op,"\n\n=================\n"; my @args; push @args,'argv.test.pl'; push @args,"\"qwerty 12354\""; push @args,'asdfg'; push @args,'zxcvbnm'; system('perl',@args); print "\n\n==============\n"; systemx('perl',@args); print "\n\n==============\n";

      And there are the contents of 'argv.test.pl'

      print "$ARGV[0]\n\t$ARGV[1]\n\t\t$ARGV[2]\n";

      and here is what is written to standard out:

      C:/Perl64.v.5.14/bin\perl.exe -w c:/Work/IPC.test.pl ============== ================= qwerty 12354 asdfg zxcvbnm ============== qwerty 12354 asdfg zxcvbnm ==============

      So, it is clear that my way forward is to use IPC::System::Simple. But what is not clear is why using the default system and back ticks worked fine on WIndows 7, Windows XP, and Windows Server 2003, but fails miserably on Windows Server Web. But I am not going to worry too much about that as long as I can quickly get these programs working again.

      Thanks again.