Index: trunk/ippScripts/scripts/register_imfile.pl
===================================================================
--- trunk/ippScripts/scripts/register_imfile.pl	(revision 22421)
+++ trunk/ippScripts/scripts/register_imfile.pl	(revision 22427)
@@ -17,5 +17,6 @@
 use Storable qw(freeze thaw);
 use File::Basename qw( basename);
-use IPC::Run qw( harness run );
+use IPC::Run;
+use IPC::Cmd 0.36 qw( can_run );
 use PS::IPP::Config 1.01 qw( :standard );
 use PS::IPP::Metadata::Config;
@@ -30,10 +31,7 @@
 # Look for programs we need
 my $missing_tools;
-my $regtool = `which regtool` or (warn "Can't find regtool" and $missing_tools = 1);
-my $ppStats = `which ppStats` or (warn "Can't find ppStats" and $missing_tools = 1);
-my $ppStatsFromMetadata = `which ppStatsFromMetadata` or (warn "Can't find ppStatsFromMetadata" and $missing_tools = 1);
-chomp $regtool;
-chomp $ppStats;
-chomp $ppStatsFromMetadata;
+my $regtool = can_run( 'regtool' ) or (warn "Can't find regtool" and $missing_tools = 1);
+my $ppStats = can_run( 'ppStats' ) or (warn "Can't find ppStats" and $missing_tools = 1);
+my $ppStatsFromMetadata = can_run( 'ppStatsFromMetadata' ) or (warn "Can't find ppStatsFromMetadata" and $missing_tools = 1);
 
 my ($cache, $exp_id, $tmp_class_id, $tmp_exp_name, $uri, $dbname, $verbose, $no_update, $no_op, $logfile);
@@ -95,18 +93,18 @@
     # Run ppStats
     my ($in1, $out1, $err1);    # Buffers for ppStats
-    my $h1 = harness \@command1, \$in1, \$out1, \$err1;
+    my $h1 = IPC::Run::harness \@command1, \$in1, \$out1, \$err1;
     print "[Running $command1]\n";
-    my $result1 = run $h1;
-    print $out1;
-    print $err1;
+    my $result1 = IPC::Run::run $h1;
+    print "STDOUT:\n$out1";
+    print "STDERR:\n$err1";
     &my_die("Unable to perform ppStats on exposure id $exp_id: " . $h1->result(), $exp_id, $tmp_exp_name, $tmp_class_id, $uri, $h1->result() ) unless $result1;
 
     print "[Running " . join(' ', @command2) . "]\n";
     my ($out2, $err2);          # Buffers for ppStatsFromMetadata
-    my $h2 = harness \@command2, \$out1, \$out2, \$err2;
+    my $h2 = IPC::Run::harness \@command2, \$out1, \$out2, \$err2;
     print "[Running $command2]\n";
-    my $result2 = run $h2;
-    print $out2;
-    print $err2;
+    my $result2 = IPC::Run::run $h2;
+    print "STDOUT:\n$out2";
+    print "STDERR:\n$err2";
     &my_die("Unable to perform ppStatsFromMetadata on exposure id $exp_id: " . $h2->result(), $exp_id, $tmp_exp_name, $tmp_class_id, $uri, $h2->result() ) unless $result2;
     chomp $out2;
@@ -168,6 +166,11 @@
 # Push the results into the database
 unless ($no_update) {
+    my ($in1, $out1, $err1);    # Buffers for ppStats
+    my $h1 = harness \@command1, \$in1, \$out1, \$err1;
+    print "[Running $command1]\n";
+    my $result1 = run $h1;
+
     my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
-        run(command => $command, verbose => $verbose);
+        IPC::Cmd::run(command => $command, verbose => $verbose);
     unless ($success) {
         $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
@@ -190,5 +193,5 @@
         return @{thaw $cmd_output};
     } else {
-        my @output = run(%p);
+        my @output = IPC::Cmd::run(%p);
         $c->set($p{command}, freeze \@output) if $cache;
         return @output;
