hemantjsr has asked for the wisdom of the Perl Monks concerning the following question:
final result would be
file1:- 12 4947000219 20140924105028
file2:- 12 4947000220 20140924105228
file3:- 12 4947000221 20140924105428
Done the changes in code,no error but not getting desire result
#!/usr/bin/perl -w use File::Copy; use 5.010; # For autodie and regex \K use Time::Piece; use Time::Seconds qw/ ONE_MINUTE /; use constant DATE_FORMAT => '%Y%m%d%H%M%S'; my $source_file = "KOH_1026.udr"; my $lines; my $tp; for my $i (1 .. 3) { copy($source_file, sprintf("KOH_1026%02d.udr", $i)) or die "Copy faile +d: $!"; open my $input_file, '<', $source_file; my @lines = <$input_file>; close $input_file; foreach (@lines) { $n++; $lines[0] =~ s~/(4947000219)/$1+$n/~e; $lines[1] =~ s{:20140924105028(\d+)}{ $tp = Time::Piece->strptime($1, DATE_FORMAT); ($tp + ONE_MINUTE * 2 * $n)->strftime(DATE_FORMAT); }e; open my $output_file, '>',$source_file; print $output_file @lines; close $output_file; } }
Error Message
String found where operator expected at ./prog.pl line 33, near "$lines1 =~ 's{:20140924105028(\d+)}'" (Missing operator before 's{:20140924105028(\d+)}'?) syntax error at ./prog.pl line 33, near "$lines1 =~ 's{:20140924105028(\d+)}'" Can't use global $1 in "my" at ./UDR_Tool.pl line 34, near "($1" syntax error at ./prog.pl line 41, near "}" Bareword "e" not allowed while "strict subs" in use at ./prog.pl line 36.Monks need your help to resolve the issue
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Dear Monks, Have created multiple files from one file ...
by Athanasius (Archbishop) on Dec 31, 2014 at 17:03 UTC | |
by hemantjsr (Initiate) on Jan 01, 2015 at 18:06 UTC | |
by Corion (Patriarch) on Jan 01, 2015 at 18:09 UTC | |
Re: Dera Monks, Have create multiple file from one file now I want to match a pattern in each file at the same time do the replacement with adding one to the match pattern.
by Laurent_R (Canon) on Dec 31, 2014 at 12:11 UTC | |
Back to
Seekers of Perl Wisdom