Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. use strict;
  2. use warnings;
  3. use Data::Printer;
  4. use Date::Time;
  5. use DateTime::Format::Strptime;
  6.  
  7. my $strp = DateTime::Format::Strptime->new(
  8. pattern => '%D',
  9. time_zone => 'America/New_York',
  10. );
  11. my @dates = (
  12. [1, '5/18/2011'],
  13. [2, '6/18/2011'],
  14. [3, '6/18/2014'],
  15. [4, '6/18/2010'],
  16. );
  17.  
  18. my @res = sort { date_sort( $a->[1], $b->[1], $strp ) } @dates;
  19.  
  20. p @res;
  21.  
  22. sub date_sort {
  23. my ( $date1, $date2, $strp ) = @_;
  24.  
  25. my $dt1 = $strp->parse_datetime($date1);
  26. my $dt2 = $strp->parse_datetime($date2);
  27. return DateTime->compare($dt1, $dt2);
  28. }
  29.  
  30. [
  31. [0] [
  32. [0] 1,
  33. [1] "5/18/2011"
  34. ],
  35. [1] [
  36. [0] 2,
  37. [1] "6/18/2011"
  38. ],
  39. [2] [
  40. [0] 3,
  41. [1] "6/18/2014"
  42. ],
  43. [3] [
  44. [0] 4,
  45. [1] "6/18/2010"
  46. ]
  47. ]
  48.  
  49. [
  50. [0] [
  51. [0] 4,
  52. [1] "6/18/2010"
  53. ],
  54. [1] [
  55. [0] 1,
  56. [1] "5/18/2011"
  57. ],
  58. [2] [
  59. [0] 2,
  60. [1] "6/18/2011"
  61. ],
  62. [3] [
  63. [0] 3,
  64. [1] "6/18/2014"
  65. ]
  66. ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement