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/