[perl] stat sur plusieur fichier avec chain..

Résolu
Bonjour,

Je souhaiterai faire un stat sur tous les fichiers d'un dossier connu ayant pour nom un partie d'un prefixe défini ...
J'explique :

$DOSSIER = "/home/toto/bidule";
$PREFIXE = "zaza";

je veux donc faire un stat sur tous les fichier contenant "zaza" dans leur nom dans le dossier /home/toto/bidule

pour l'instant j'ai essayé ceci :

$DOSSIER = $DOSSIER."/*".$PREFIXE."*";
$TEMPS_FICHIER = (stat($DOSSIER))[9];

mais sans succès.
Quelqu'un peut-il m'indiquer d'où vient l'erreur?
merci d'avance
Configuration: Linux
Firefox 1.5.0.5

2 réponses

  1. voila comment je m'y suis pris :

    if($PREFIXE ne "") #on va recuperer le temps du dernier fichier arrivé
    {
    my $j = 0;
    $TEMPS_FICHIER = 0; #sera le temps du dernier fichier arrivé
    $TOUS_FICHIER = `ls -l $DOSSIER|grep '$PREFIXE'`; #enregistre tous les fichier avec le prefixe que j'ai désigné
    @L_FICHIER = split "\n",$TOUS_FICHIER;
    while($j < @L_FICHIER)
    {
    @FICHIER = split " ",$L_FICHIER[$j];
    $NOM_FIC = $FICHIER[8];
    $TOUS_TEMPS_FICHIER = (stat($DOSSIER."/".$NOM_FIC))[9];
    if ($TOUS_TEMPS_FICHIER > $TEMPS_FICHIER)
    {
    $TEMPS_FICHIER = $TOUS_TEMPS_FICHIER;

    }

    $j += 1;

    }

    }

    voila le travail
    0
    1. Modérateur
      Salut,

      voici une autre possibilité pour chercher les fichier zaza
      #!/usr/bin/perl
      use strict;use warnings;
      use File::Find;
      
      my ($f,$s,$rep);
      $rep = '/home/toto/bidule/';
      
      # cherche fichiers zaza
      sub cherche_zaza {
              $f=$File::Find::name;
              $s=(stat($f))[9] and print "$f $s\n" if $f=~/zaza/;
      }
      
      find(\&cherche_zaza,$rep);
      __END__
      Si tu veux le fichier pous recent voici un exemple à adapter http://www.commentcamarche.net/forum/affich 4735450 perl trouver un fichier#2
      0