Hi,
I am new to perl and need help in sorting dates. I have a text file with 50000 lines. One column is date in the format D/M/YYYY. I'm reading the file and making a hash for the date count. I would like to sort these dates before displaying them finally.
I tried converting this to DD/MM/YYYY using regular expression but this obviously dosent work. I guess converting the date to YYYY/MM/DD, sorting and converting back is not a good idea also.
I havent worked with date modules and can someone suggest which one to use Date::Calc or Date::Manip and how to use them with hash in my case.
Thanks in advance.
Joseph
foreach my $line (@file)
{
my @fields = split(/,/, $line);
if ($fields[6] !~ /\d{2}\/\d{2}\/\d{4}/)
{
@tempdate = split(/\//, $fields[6]);
if ($tempdate[0] < 10)
{
$newdate = "0" . $tempdate[0] . "/";
}
else
{
$newdate = $tempdate[0] . "/";
}
if ($tempdate[1] < 10)
{
$newdate = $newdate . "0" . $tempdate[1] . "/";
}
else
{
$newdate = $newdate . $tempdate[1] . "/";
}
$fields[6] = $newdate . $tempdate[2];
}
$datecount{$fields[6]}++;
}
foreach my $date (sort(keys(%datecount)))
{
print "\n", $date, ": ", $datecount{$date};
}
-
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.
|