Hi All, 
 
I am a newbie to Perl Script. I need your help in one of my perl Script. 
My Script has to search a particular string like "\$Header\$" in files and if 
this string is found, it should replace it with "\$Header $NameofFile 
01/01/2009". But it's making the files blanks. 
 
Please look at the below code wriiten by me and guide me to correct the same:
 
#! /local/bin/perl -w
#use strict;
use File::Basename;

my $src_dir;
print "Specify top directory location where all product XML/JAVA files exist  
==> ";
$src_dir = validate_dir("s") or return;
sub validate_dir {
    my ($dir_type) = @_;
    my $dir;
    print "Directory is : $dir_type\n";
    while (1)
    {
        $dir = <STDIN>;
        chomp($dir);
        print "$dir\n";
        if ($dir_type eq 's') {
            if (!(-d $dir)) {
                print "ERROR : source directory $dir does not exist.\n";
                print "Specify valid source directory  ==> ";
            }
            else {
                last;
            }
        }
    }
    return $dir;
}
print "Source Directory : $src_dir\n";
update_attributesets();
sub update_attributesets {
    my %map;
    my $text;
    if (-f $src_dir) {
        @ARGV = ($src_dir);
    }
    else {
�...@argv = qx!find $src_dir -name \'*.*\'!;
    }
foreach my $filename (@ARGV)
 {
 
        chomp($filename);
        print "$filename\n";
my $var='\$Header\$';
open(READFILE, "<$filename");
      my @lines = <READFILE>;
     my $modified=0;
      close READFILE;
     open(WRITEFILE,">$filename");
      foreach my $line (@lines)
       {
 my $fname = basename($filename );
 my $result=index($line,$var);
 if ($result!=-1)
 {
         s/$var/\$Header: $fname 120.0 2007\/11\/27 07:59:52 atgops1 noship \$/;
         print WRITEFILE $_;
    ++$modified;
 }
       }
       close WRITEFILE;
}
print ' Modified files are $modified\n';
}
 
Thanks,
Harish

 
 


      The INTERNET now has a personality. YOURS! See your Yahoo! Homepage. 
http://in.yahoo.com/

Reply via email to