in reply to Sorting out file dates on a remote Win32 PC

Note 1:
$a <=> $b compares numerically.
@a = sort { $a <=> $b } (1, 5, 3);
$a cmp $b compares alphabetically.
@a = sort { $a cmp $b } qw(apple orange banana);

Note 2: readdir's outputs doesn't need to be chomped.

This will do the trick:

@status = sort { my $mtime_a = (stat("$target_dir\\$a"))[9]; my $mtime_b = (stat("$target_dir\\$b"))[9]; $mtime_a <=> $mtime_b } @status;

But it's very expensive because stat can be called multiple times for each file. So here's the workaround (called the Schwartzian Transform):

@status = ( map { $_->[0] } sort { $a->[1] <=> $b->[1] } map { [ $_, stat("$target_dir\\$_"))[9] ] } @status );

Replies are listed 'Best First'.
Re^2: Sorting out file dates on a remote Win32 PC
by blackadder (Hermit) on Sep 08, 2004 at 13:54 UTC
    Brilliant,..it worked - of course - Thanks.
    Blackadder