G'day jasonl,

You show no indication of what <data2> contains. I assume they're not unique values as you've used it as a key for an array (@{$myHash{$data2}{info}}). You don't say how many elements this array might hold, if you want to sort on <data2> nor whether <data2> needs to appear in the output.

A representative, unordered sample of the input as well as how you'd expect that to be output would have been helpful.

The following script may provide some help in formulating your solution:

#!/usr/bin/env perl -l use strict; use warnings; use Time::Piece; my %myHash; my $format = '%m/%d/%Y %H:%M:%S'; while (<DATA>) { my ($date, $time, $data1, $data2) = split; my $sort_key = Time::Piece->strptime("$date $time", $format)->epoc +h; push @{$myHash{$data2}{info}}, "$sort_key:$date,$time,$data1"; } for my $key (sort keys %myHash) { print "$_,$key" for map { $_->[1] } sort { $a->[0] <=> $b->[0] } map { [ split /:/, $myHash{$key}{info}[$_], 2 ] } 0 .. $#{$myHash{$key}{info}}; } __DATA__ 01/14/2014 23:44:14 A Y 01/14/2014 23:44:12 B Y 01/14/2014 23:44:13 C X 01/14/2014 23:44:12 D X

Output:

01/14/2014,23:44:12,D,X 01/14/2014,23:44:13,C,X 01/14/2014,23:44:12,B,Y 01/14/2014,23:44:14,A,Y

If you provide a better description of your problem, a better solution can probably be provided. The guidelines in "How do I post a question effectively?" may help you with this.

-- Ken


In reply to Re: sorting logfiles by timestamp by kcott
in thread sorting logfiles by timestamp by jasonl

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.