3 print "\nModifying the '.t' files...\n\n";
8 ## Change the below line to the directory you want to process
9 $DirName = "/perl/scripts/t";
15 opendir(DIR, $DirName) or die "Unable to open the directory, $DirName for reading.\n";
18 foreach $DirItem(@Dirs)
20 $DirItem = $DirName."/".$DirItem;
21 push @DirNames, $DirItem; # All items under $DirName directory is copied into an array.
24 foreach $FileName(@DirNames)
27 { # If an item is a directory, then open it further.
29 opendir(SUBDIR, $FileName) or die "Unable to open the directory, $FileName for reading.\n";
30 @SubDirs = readdir(SUBDIR);
33 foreach $SubFileName(@SubDirs)
37 &Process_File($SubFileName); # If file, process it.
41 $SubFileName = $FileName."/".$SubFileName;
42 push @DirNames, $SubFileName; # If sub-directory, push it into the array.
50 &Process_File($FileName); # If file, process it.
57 print "\n\n\nTotal number of files present = $FilesTotal\n";
58 print "Total number of '.t' files read = $FilesRead\n";
59 print "Total number of '.t' files modified = $FilesModified\n\n";
67 local($FileToProcess) = @_; # File name.
71 if(!(-w $FileToProcess)) {
72 # If the file is a read-only file, then change its mode to read-write.
73 chmod(0777, $FileToProcess);
77 $base = basename($FileToProcess); # Get the base name
78 $dir = dirname($FileToProcess); # Get the directory name
79 ($base, $dir, $ext) = fileparse($FileToProcess, '\..*'); # Get the extension of the file passed.
81 ## If the value of $FileToProcess is '/perl/scripts/t/pragma/warnings.t', then
82 ## $dir = '/perl/scripts/t/pragma/'
87 # Do the processing only if the file has '.t' extension.
90 open(FH, "+< $FileToProcess") or die "Unable to open the file, $FileToProcess for reading and writing.\n";
91 @ARRAY = <FH>; # Get the contents of the file into an array.
93 flock(FH, LOCK_EX); # Lock the file for safety purposes.
94 foreach $Line(@ARRAY) # Get each line of the file.
96 if($Line =~ m/\@INC = /)
97 { # If the line contains the string (@INC = ), then replace it
99 # Replace "@INC = " with "unshift @INC, "
100 $Line =~ s/\@INC = /unshift \@INC, /;
105 if($Line =~ m/push \@INC, /)
106 { # If the line contains the string (push @INC, ), then replace it
108 # Replace "push @INC, " with "unshift @INC, "
109 $Line =~ s/push \@INC, /unshift \@INC, /;
115 seek(FH, 0, 0); # Seek to the beginning.
116 print FH @ARRAY; # Write the changed array into the file.
117 flock(FH, LOCK_UN); # unlock the file.
118 close FH; # close the file.
120 $FilesRead++; # One more file read.
123 print "Modified the file, $FileToProcess\n";
126 $FilesModified++; # One more file modified.
130 $FilesTotal++; # One more file present.