in reply to Re^2: regarding file from the directory and executing some commands and placing the out put on exceel sheet.
in thread regarding file from the directory and executing some commands and placing the out put on exceel sheet.
Try this. I have replaced your hash with numeric keys with a simple 2D array. You will need to activate the lines marked ##, comment out or remove those marked #test, print to the file your want and build your @files array using readdir.
poj#!perl use strict; use warnings; my @test = (470,278); #test my @Gkel=(); my @Gkel_gz=(); my @TT1=(); my @files = qw( Gkel_check.1.ABC.dat.gz Gkel_check.1.ABC.dat check.1.ABC_TT1.dat check.1.AB_TT1.dat ); foreach my $file (@files) { if ( $file =~ m/^Gkel_/ ){ if ( substr($file, -2) eq 'gz' ) { ## my $result = `gunzip -c $file|tail -1`; ## system(`gunzip -f $file`); ## my $count = substr($result,22,8); my $count = 108418; #test $Gkel_gz[0] = $file; $Gkel_gz[1] = $count; } else { ## my $result = `wc -l $file`; ## my ($count, $file_name) = split(' ',$result); my $file1 = substr($file,5); my $count = 107948; #test ## system(`mv $file $file1`); $Gkel[0] = $file1; $Gkel[1] = $count; } } if ( $file =~ m/^check.*TT1.dat$/ ){ ## my $result = `wc -l $file`; ## my ($count, $file_name) = split(' ',$result); my $count = shift @test; #test push @TT1,[$file,$count]; } } # Expected #Gkel_check.1.ABC.dat.gz 108,418 108,418 #check.1.ABC_TT1.dat 470 #check.1.ABC.dat 107,670 107,670 TRUE #check.1.AB_TT1.dat 278 my $Count = $Gkel_gz[1]; my $Count1 = $Gkel[1] - $TT1[1]->[1] ; my @row = ('Jun-2013', $Gkel_gz[0],$Count,$Count, $TT1[0]->[0],$TT1[0]->[1], $Gkel[0],$Count1,$Count1, 'TRUE', $TT1[1]->[0],$TT1[1]->[1]); print join ',',@row,"\n"
|
|---|