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
Use of uninitialized value $lines1 in substitution (s///) at
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;
In reply to Error "Use of uninitialized value $lines[0] in substitution (s///) at " with below Code by Eric_h
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |