Je vais mettre dans cette page des exemples de
script qui font des tâches qui reviennent souvent. Bien
évidement
je débute et il y a sûrement moyen de faire mieux, plus
rapide,
plus léger, plus sûr. Mais tous les bouts de codes
ci-dessous
fonctionnes. Je ne regarde pas assez le news-groupes en ce moment
(pour ne pas me simplifier la tâche ni me faire influencer).
Je le ferai quand le moment sera venu, pour
passer
un cap, monter d'un cran, car la meilleur de façon d'apprendre
Perl
est justement de suivre les NGs et surtout fr.
alain
Adelmar
aadelmar@free.fr
#!perl -w
# remd: test pour: s/MOTIF/REMPLACEMENT/egimosx
aadelmar@wanadoo.fr
$x="x" x 30;
LABEL_TOP:print "Entrez le nom complet du fichier à
traiter:\n";
chomp($file = <STDIN>);
# sortir le path du filename avec s///:
$road66 = $filename = $file;
$road66 =~ s/()\\\w+\.\w{2,4}$/$1/i;
print "road66 = $road66\n";
$filename =~ s/^.+\\\b()/$1/;
print "filename = $filename\n";
# ($road66, $filename)= split(/\\$/, $file); ou ($rootname,
$ext)
= split(/\./, $filename)
print "\n$x\n";
print "$road66 plus $filename = $file\n";
print "\n$filename\n";
END;
use File::stat;
print "$x\n maintenant avec le module File::stat\n";
$st = stat($filename);
printf "Le fichier: %s, taille: %s, permission: %04o, mtime: %s\n",
$filename, $st -> size, $st -> mode & 07777,
scalar localtime $st -> mtime;
#__________synthése
=> Lefichierpipo.txt, taille:454, permisson:0774,
mtime:Fri2001.01.0311:23:56"
# ou approchant (format date)
#(n: l'utilisation du module permet simplement l'utilisation de
$st et des méthode ->mtime,
->size etc... pour tout les champ de stat...)voir ECctime.pl
use DateFrench;
our $format_affichage = 21;
our $opt_date_file = 2;
our $fr_date_now = maintenant("$format_affichage");
#------------------------------cartouche --------------
my $lx = ("*" x 25) x 2;
my $file = $0;
our $fr_date_file = datefichier($format_affichage, $opt_date_file, $file);
my $moi = " Votre_nom (adresse_e_mail)";
# cartouche pour les fichier .log
my $head_lbl= "script $0\nécris par $moi\nle $fr_date_file\nexecuter le $fr_date_now\n";# cartouche pour la sortie console
my $head_lbl_console = "$lx\nscript: $0\nécris par: $moi\nle: $fr_date_file\nexecuter le: $fr_date_now\n$lx\n";
# cartouche en commentaire pour les fichier .html
my $head_lbl_comment = '<!--- update pour migration de PUB' . "\nscript: $0\nécris par: $moi\nle: $fr_date_file\nexecuter le: $fr_date_now\n ---" . '>';
#--------------------------------------------
print "$head_lbl\n";
print "\n\n\n";
print "$head_lbl_console\n";
# fait une copie pour pouvoir travailler sans
faire de dégâts (la copie doit avoir un nom propre et/ou
un
numéro particulier)
$copieID = "copie_" . "$file" . "_$id" . "\.html";
($copie, $ext) = split(/\./, $copieID);
($lbl, $id) = split(/_/, $copie);
while (-e donne_un_nom($copieID)) {
$id++;
donne_un_nom($copieID);
}
# avec sa routine placé en fin de programme:
sub donne_un_nom($copieID) {
my ($copieID) = @_;
$copieID = "copie_" .
"$file" . "_$id" . "\.log";
($copie, $ext) =
split(/\./,
$copieID);
($lbl, $id) = split(/_/,
$copie);
return $copieID;
}
# pensez qu'a la place de $id on peut placer
$t_now
= (localtime($file));