Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re^6: Get most recent data based on a date from an array of hashes.

by Anonymous Monk
on Jan 19, 2022 at 17:52 UTC ( #11140618=note: print w/replies, xml ) Need Help??


in reply to Re^5: Get most recent data based on a date from an array of hashes.
in thread Get most recent data based on a date from an array of hashes.

I liked your approach to this, just one question, the code works with the dates in MM-DD-YYYY and YYYY-MM-DD, is this on this part of the code "2,0,1", that's the part I am confused with it, thanks!
#!/usr/bin/env perl #use 5.032; use strict; use warnings; use Data::Dumper; my @dates = qw( 02-03-2003 03-01-2022 01-15-2022 01-15-2023 01-15-2001 + 11-15-2023); #my @dates = qw( 2003-02-03 2015-03-01 2032-01-15 2023-01-15 2001-01-1 +5 2028-11-15); print "\n\n ".Dumper \@dates; my @sorted = sort { my $new_a = join( q{-}, (split(/-/,$a))[2,0,1] ); my $new_b = join( q{-}, (split(/-/,$b))[2,0,1] ); $new_b cmp $new_a } @dates; print "\n\n $sorted[0]\n\n";
  • Comment on Re^6: Get most recent data based on a date from an array of hashes.
  • Download Code

Replies are listed 'Best First'.
Re^7: Get most recent data based on a date from an array of hashes.
by Fletch (Bishop) on Jan 19, 2022 at 18:19 UTC

    It doesn't work for MM-DD-YYYY; it seems to work because you've managed to (luckily and/or unintentionally) pick data for which it works. For a counter example look what it'd do to "01-16-2000" and "01-13-2022" sorting newest to oldest. You need to use YMD for lexigraphic sorting to work.

    my @d = qw( 01-13-2022 01-16-2000); say for sort { $b cmp $a } @d;

    As for the syntax giving you pause, that's just a list slice reordering elements. split(/-/,$a) returns a list of MM, DD, YYYY and then passes the list YYYY, MM, DD to join to be put back together. Search for "Slices" in perldata.

    The cake is a lie.
    The cake is a lie.
    The cake is a lie.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11140618]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (4)
As of 2022-07-07 10:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?