#!/usr/bin/perl
# remd: trier une liste de fichier par time
# et mettre un controle temps d'execution sans passé par une commande bash
# alain Adelmar
my $debutt = time;
use strict;
use warnings;

use Cwd;
our $dir = cwd;
print "dir vaut :$dir\n";


# manière longue utile que si l'on souhaite récolter tout les paramètres
opendir DIR, "$dir" or die "ouverture du rep courant impossible $!";
my @ls = (sort readdir DIR);
closedir DIR || die "Fermeture du rep courant impossible $!";

my %h;
foreach (@ls) {
  next if (-d); # passer si c'est un rep
  my $datenum = ((stat($_))[10]);
  print "$_ : $datenum\n";
  # soit mettre dans un hash $h{nom}=chiffre-date
  $h{$_}= (-M $_);
  
}


my %cache;
print "Or-cache\n";
# manière rapide appelé Or-cache
$cache{$_} = -M for @ls;
my @out = sort { $cache{$a} <=> $cache{$b} } @ls;

foreach (@out) {
  print "$_\n";
}

print "voulez vous savoir combien de temps avez vous " .
  "consacré à ce script:[o,n](o)\n";
my $reponse = <STDIN>;
chomp $reponse;
if($reponse=~ /^n/) {
  print "tant pis pour vous, je vous donnerai le decompte quand même\n";
}
else {
  print "et bien vous avez passé\n";
}
my $fint = time;
my $decompte = $fint - $debutt;
print "$decompte\n";

&chrono($decompte);

sub chrono {
  my ($decompte)=@_;
  
  my $secondes = $decompte % 60;
  my $minutes = ($decompte / 60) % 60;
  my $heures = ($decompte / (60 * 60));
 
  printf("temps écoulé: %d secondes correspondent à %02d:%02d:%02d\n", 
	($decompte, 
	 $heures, 
	 $minutes, 
	 $secondes));
  }
