I think you need something more like:
#! perl -w
use strict;
use Date::Calc qw(Delta_Days);
my $outfile = 'new_logfile.txt';
my ($yr, $mo, $day) = qw/2006 1 1/;
open OUT, ">", $outfile or die "Cannot open $outfile:$!\n";
while (<DATA>) {
my ($line_year, $line_mon, $line_day) = /(\d{4})-(\d{1,2})-(\d{1,2})
+/;
## you need the date, unless you can rely on ordered dates.
## Your sample suggests they're unordered, so I'm going with that.
## if they're ordered, there are easier ways to do this
my $delta_days = Delta_Days($line_year,$line_mon,$line_day,$yr,$mo,$
+day);
print $delta_days;
next if $delta_days > 0;
print OUT $_;
}
close OUT;
__DATA__
TICKETHELP###,########,1234567###,2004,X,Y,35.00###,2004-5-2 17:44:44,
+TICKETHELP###########1234567###2005XY356.00###,World Cup List,John Ma
+rck
TICKETHELP###,########,1234567###,2005,X,Y,16.00###,2005-3-8 17:44:44,
+TICKETHELP###########1234567###2005XY356.00###,World Cup List,John Ma
+rck
TICKETHELP###,########,1234567###,2006,X,Y,23.00###,2006-1-3 17:44:44,
+TICKETHELP###########1234567###2005XY356.00###,World Cup List,John Ma
+rck
TICKETHELP###,########,0933456###,2005,X,Y,33.00###,2005-5-7 17:44:44,
+TICKETHELP###########1234567###2005XY356.00###,World Cup List,John Ma
+rck
TICKETHELP###,########,1234567###,2005,X,Y,87.00###,2005-5-4 17:44:44,
+TICKETHELP###########1234567###2005XY356.00###,World Cup List,John Ma
+rck
TICKETHELP###,########,1984567###,2005,X,Y,32.00###,2005-3-8 17:44:44,
+TICKETHELP###########1234567###2005XY356.00###,World Cup List,John Ma
+rck
TICKETHELP###,########,1234567###,2005,X,Y,67.00###,2006-5-2 17:44:44,
+TICKETHELP###########1234567###2005XY356.00###,World Cup List,John Ma
+rck
TICKETHELP###,########,1223698###,2000,X,Y,79.00###,2000-1-1 17:44:44,
+TICKETHELP###########1234567###2005XY356.00###,World Cup List,John Ma
+rck
TICKETHELP###,########,1299n67###,2001,X,Y,26.00###,2001-5-5 17:44:44,
+TICKETHELP###########1234567###2005XY356.00###,World Cup List,John Ma
+rck
produces:
TICKETHELP###,########,1234567###,2006,X,Y,23.00###,2006-1-3 17:44:44,
+TICKETHELP###########1234567###2005XY356.00###,World Cup List,John Ma
+rck
TICKETHELP###,########,1234567###,2005,X,Y,67.00###,2006-5-2 17:44:44,
+TICKETHELP###########1234567###2005XY356.00###,World Cup List,John Ma
+rck
from your data. You could also modify this to do other things like pick a specific date in the past or accept an argument as a date. I'd also suggest you look into zipping your files (it's not hard to do with perl, and can save a lot of space).
-----------------
s''limp';@p=split '!','n!h!p!';s,m,s,;$s=y;$c=slice @p1;so brutally;d;$n=reverse;$c=$s**$#p;print(''.$c^chop($n))while($c/=$#p)>=1;
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.