in reply to Running an application and capturing output

Like thunderkgnat says, you're probably missing the $ infront of log->info;
deparsing that code
C:\Documents and Settings\erickn\Desktop\invexp>perl -MO=Deparse -e"lo +g->info" log($_)->info; -e syntax OK
shows that you are executing log, a builtin function of perl. Since $_ is not set it tries to do a log of 0 which is not defined.
Try putting use strict; and use warnings; at the top of your script to help track down bugs like these.

Replies are listed 'Best First'.
Re^2: Running an application and capturing output
by chromatic (Archbishop) on Jun 02, 2005 at 04:13 UTC

    Why would $_ not be set in a while loop? What would either strict or warnings do in a case like this?

      Strict because, well, it's just a good idea.
      Warnings because, if he had it on, would probably have seen something like
      C:\Documents and Settings\erickn\Desktop\invexp>e.pl line 1 Can't take log of 0 at C:\Documents and Settings\erickn\Desktop\invexp +\e.pl line 9, <DATA> line 1.
      Note that I am guessing what his batch file would return to stdout. My test code to produce the above output...
      #use warnings; use strict; use Log::Log4perl qw(); Log::Log4perl::init("process.conf"); my $log = Log::Log4perl->get_logger(); #open APP, "Exception.bat |" or die "File not found\n"; while(<DATA>){ print; log->info; } print "Out of batch file\n"; __DATA__ line 1 line 2
      update: I suppose that's not alot of extra info but it is more that he had and might have made it easier for him to figure it out on his own. *shrugs*