Hi,

I have a requirement. There are files in the parent directory and they are
touched in the child directory. So in child directory there are 0 byte files
having the same name as the ones in the parent directory. I need to read
files in the child directory, and for each file present in the child
directory, I need to take that file from the parent directory, process that
file(remove duplicate lines from that file), and then write the output for
each of the input files in the output directory.

I have written the code as below but it gives 0 byte files as output. Please
suggest what is wrong with the below code.
I have a fear that instead of processing files from parent directory, it is
processing files from the child directory.

I am a newbie at perl. So i might have made silly mistakes. Request you to
correct them.



#!/usr/bin/perl

my $child_path =
'/home/user71/RangerDatasource/Customization/TelekomMalaysia/Scripts/Tests/cprogs/files/child'
;
my $parent_path =
'/home/user71/RangerDatasource/Customization/TelekomMalaysia/Scripts/Tests/cprogs/files'
;
my $write_path =
'/home/user71/RangerDatasource/Customization/TelekomMalaysia/Scripts/Tests/cprogs/files/output'
;
my $line;
my %hash;
my @file;
my $key ;
my $value ;

while () {

opendir my $dh, $child_path or die $!;

        while (my $file = readdir $dh) {

                my $fname = "$child_path/$file";
                next unless -f $fname;
                        unless (exists $times{$file}){

                                opendir my $dh1,$parent_path or die $!;

                                while (my $file = readdir $dh1) {

                                        while ($line=readline($file))
                                        {
                                        my @cdr=split (/,/, $line) ;

$hash{$cdr[2],$cdr[3],$cdr[6],$cdr[7]}=$line;  #Add some more cdr key fields
if u want.
                                        }
                                        close $file ;
                                }
                        closedir $dh1 ;

                open (my $OUT_FILE,">","$write_path/$file.out") or die $!;
                while (($key, $value) = each %hash)
                        {
                        print $OUT_FILE $value;
                        }
                        close $OUT_FILE;
                }
                unlink("$parent_path/$file") ;
                unlink("$child_path/$file") ;


        }
closedir $dh;
}

Reply via email to