Try to do manipulation in each file in incremental order. Below is my code n it's giving an error message.
Use of uninitialized value $lines[0] in substitution (s///) at ./Replace.pl line 26.
Use of uninitialized value $lines[1] in substitution (s///) at ./Replace.pl line 27.
As m new in Perl World kindly help.
#!/usr/bin/perl -w
use strict;
use warnings;
use 5.010;
use autodie;
use Time::Piece;
use Time::Seconds qw/ ONE_MINUTE /;
use constant DATE_FORMAT => '%Y%m%d%H%M%S';
my $n;
my $directory="/home/tt/Doc/Auto";
opendir(DIR, $directory) or die "couldn't open $directory: $!\n";
my @files = readdir DIR;
foreach (@files) {
open my $in_fh, '<', $_;
my @lines = <$in_fh>;
close $in_fh;
++$n;
$lines[0] =~ s/4947000219\K(4947000219+)/$1+$n/e;
$lines[1] =~ s{:20140924105028\K(\d+)}{
my $tp = Time::Piece->strptime($1, DATE_FORMAT);
($tp + ONE_MINUTE * 2 * $n)->strftime(DATE_FORMAT);
}e;
my $backup = "$_.backup";
unlink $backup if -f $backup;
rename $_, $backup;
open my $out_fh, '>', $_;
print $out_fh @lines;
close $out_fh;
}
closedir DIR;
Hello hemant.nitjsr!
We believe that this post does not fit the main topic of this site.
This question is probably better for Stack Overflow
For this reason we have closed your question. This allows us to keep the site focused on the topics that the community can help with.
If you disagree please tell us why in a reply below, we'll be happy to talk about it.
Cheers!