Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: sorting dates in YYYYMMDD format

by Dallaylaen (Friar)
on Jul 04, 2013 at 12:30 UTC ( #1042448=note: print w/replies, xml ) Need Help??


in reply to sorting dates in YYYYMMDD format

I've turned on warnings because I didn't get what's wrong with your code (which looks correct at first glance) and suddenly...

-bash$ xsel -o | perl -w Name "main::d" used only once: possible typo at - line 9. Use of uninitialized value $d in numeric comparison (<=>) at - line 9. Use of uninitialized value $d in numeric comparison (<=>) at - line 9. 20130601 20130501 20130401

It looks like $d is never initialized in the first place, and evaluates to 0 in a numeric comparison. So to make life a bit easier, I would suggest always turning on strict and warnings:

#!/usr/bin/perl use strict; use warnings; # or just #!/usr/bin/perl -w on first line my @dates = ('20130401', '20130501', '20130601'); my @ordered = sort { &compare } @dates; print "@ordered\n"; sub compare { $a =~ /(\d{4})(\d{2})(\d{2})/; my $c = $3 . $2 . $1; $b =~ /(\d{4})(\d{2})(\d{2})/; my $d = $3 . $2 . $1; $c <=> $d; }
And now typing $c instead of $d makes program crash on the compilation stage, instead of silently corrupting data. Also note the "my" keyword - in strict mode you have to declare your variables, instead of just using them (and probably destroying previous data). ($a and $b are special vars that require no "my" though).

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1042448]
help
Chatterbox?
[stevieb]: I don't know what you mean. I write the code in C/C++ that accesses the ICs per the datasheet, wrap it for Perl, then use them. My code ensures that the functions/methods from Perl do the right thing for the chips/sensors etc
[stevieb]: At least that's what I'm working on right now. I've also been updating my automated test software Test::BrewBuild so it handles this work properly. It's not really easy meshing high level languages with low-level hardware :)
[stevieb]: this link is probably better for an overview of my test software

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (5)
As of 2017-06-25 23:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How many monitors do you use while coding?















    Results (572 votes). Check out past polls.