in reply to unable execute $cmd
You don't have any error checking so that would probably be better written as:
#!/usr/bin/perl use warnings; use strict; use POSIX qw(strftime); use File::Basename; my $in_dir = '/home/data'; my $out_dir = '/var/www/html/rwa_test/input'; my $zip_dir = '/home/data/archive'; my $kpva = strftime '%Y%m%d', localtime; my $wait = 30; { for my $ifn ( sort { -M $b <=> -M $a } <$in_dir/*.P.M> ) { print "$ifn\n"; $ifn = basename $ifn; print "$ifn\n"; { open my $IN, '-|', 'gzip', '-c', "$in_dir/$ifn" or die "Ca +nnot open pipe from gzip: $!"; open my $ZIP, '>:raw', "$zip_dir/$ifn.$kpva.gz" or die "Ca +nnot open '$zip_dir/$ifn.$kpva.gz' $!"; local $/ = \4096; print $ZIP $_ while <$IN>; close $IN or warn $! ? "Error closing gzip pipe: $!" : "Exit status $? from gzip"; } open my $IF, '<', "$in_dir/$ifn" or die "Cannot open '$in_dir/ +$ifn' $!"; open my $OF, '>', "$out_dir/$ifn.$kpva" or die "Cannot open '$ +out_dir/$ifn.$kpva' $!"; while ( <$IF> ) { last if /^-{19}/; tr/,\t/.;/; print $OF $_; } my $cmd = qq[dbisqlc -c "uid=.....;pwd=.....;eng=......;dbn=.. +.... " -q call ......Fun_LoadAllFiles( '$out_dir/$ifn.$kpva', '$ifn.$ +kpva')]; print "$cmd\n"; 0 == system $cmd or die "system $cmd failed: $?"; rename "$in_dir/$ifn", "$in_dir/$ifn.done" or die "Cannot rena +me '$in_dir/$ifn' $!"; } sleep $wait and redo; }
|
|---|