Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

Re: sorting files

by reasonablekeith (Deacon)
on May 29, 2008 at 14:57 UTC ( #689032=note: print w/replies, xml ) Need Help??

in reply to sorting files

With reference to your update, you were pretty close, you just needed to actually compare the values to went to the trouble of extracting :) ...
sub files_sort { my $first_number; my $second_number; if ($a =~ /(\d+)_(\d+)_duration_(\w+)_comptage_(\d+).txt$/){ $first_number = $1; } if ($b =~ /(\d+)_(\d+)_duration_(\w+)_comptage_(\d+).txt$/){ $second_number = $1; } $first_number <=> $second_number; }
Have a look in 'perldoc perlop' if you don't know what the 'space ship' operator does, it's _very_ handy for sort functions, and is doing what you were trying to do with your if's and elses.

I would add though, that if this was my code, I'd probably write a sub to extract the index number from the file name, and write the whole thing like this.

sub my_sort { parse_file_name($a) <=> parse_file_name($b); } sub parse_file_name { if ($_[0] =~ /(\d+)_\d+_duration_\w+_comptage_\d+.txt$/) { return $1; } else { return 0; } }
my name's not Keith, and I'm not reasonable.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (7)
As of 2022-08-08 20:08 GMT
Find Nodes?
    Voting Booth?

    No recent polls found