index.html => Perl => exemple de script

Vide Moi Ça



Ce script permet de vider les fichiers que vous désirez de leur contenu. Pratique pour les fichier Mail
et son grand frère Vide_plus qui lui vide non seulement les contenu mais peut aussi vider directement les fichier d'un répertoire par reconnaissance de motifs.
Exemple:
        ^trav  tous les fichier commençant par trav ou
        log$  tous les fichier finissant par log
aadelmar@wanadoo.fr


#!/usr/bin/perl -w                
# remd: petit script qui vide (par defaut) le contenu d'un fichier voulu *
# ou avec l'option -d l'efface carrement. Pour la version du scropt -v   *
# usage: vide [-dv] [filename]                                           *
# detail: un menu permet de réitérer l'opération ainsi que de récupérer  * 
# le fichier en cas d'erreur.    02 Juillet 2003 | Pessac                *
# Une fois récupérer les dates seront modifier (updater à maintenant)    *
#*************** tourne bien *********************************************
# écrit par alain Adelmar     aadelmar@free.fr           vers:1.02       *
#*************************************************************************
$x ="x*" x 25;

if(defined $ARGV[0]) {
  
if ($ARGV[0] eq "-v") {
    
print "\nvide vers: 1.02\n";
    
exec 'quoi vide';
    
die "$x\n";
  
}
  
elsif ($ARGV[0] =~ /^\"|\"$/) {
    
s/^\"()\"$/$1/;
    
$fav = $1;
  
}
  
else {
    
$fav = $ARGV[0];
  
}
  
&vide_le;
}
else {
  
print "\n$x\nVous auriez pu entrer directement le nom du fichier à vider en guise d'argument,\npensez y la prochaine fois.\n$x\n";
  
&celui_la;
}

sub celui_la {
    
print "$x\nEntrer le nom du fichier à vider\n";
    
$fav = <STDIN>;
    
chomp $fav;
    
&vide_le;
  
}



sub vide_le {

  
while (!(-e $fav)) {
    
print "Nom de fichier incorrect, entrer le nom complet du fichier a vider\n***** ";
    
$fav = <STDIN>;
    
chomp $fav;
  
}
  
  
  
open F, "< $fav" or die "Ouverture de $fav impossible $!";
  
@contenu = <F>;
  
close F or die "fermeture de $fav impossible $!";
  
  
for $i(0..$#contenu) {
    
$sav[$i] = shift(@contenu);
  
}
  
print @sav;
  
open F, "> $fav" or die "Ouverture de $fav impossible $!";
  
print F "";
  
close F or die "fermeture de $fav impossible $!";
  
print "$x\nle fichier $fav à été vider de son contenu, maintenant\n";
  
&menu;
}


sub choix {
  
  
$menu =~ tr/A-Z/a-z/;
  
  
if ($menu =~ /^q/) {
    
die "$x\nTchao\n$x\n $!";
  
}
  
elsif ($menu =~ /^r/) {
    
print "$x\nLe contenu du fichier $fav lui a ete restitué, maintenant\nvoulez vous:\n - Continuer avec un autre: [Enter] (par defaut)\n - Quitter [q]\n\t";
    
open FR, "> $fav" or die "Ouverture de $fav impossible $!";
    
print FR @sav;
    
close FR or die "fermeture de $fav impossible $!";
    
chomp ($menu = <STDIN>);
    
&choix;
  
}
  
else {
    
&celui_la;
  
}
}

sub menu {
  
print "Voulez vous:\n - Continuer avec un autre: [Enter] (par defaut)\n - Quitter [q]\n - Récupérer $fav [R]\n\t";
  
$menu = <STDIN>;
  
chomp $menu;
  
&choix;
}

# script Perl pour Unix-like si utilisé sur environement Windows remplacer la premiére ligne par:
#!perl -w

END;
retour


Et son ancetre vide

#!/usr/bin/perl
# remd: ce programme vise à vider le contenu d'un fichier adelmar alain 03/2002

&videmoica;

while (! choix($oui)) {
  &videmoica;
  &oncontinu;
}
 
 

sub choix {
  my($oui) = @_;

  $oui =~ s/\W.*//;
  $oui =~ tr/A-Z/a-z/;

  if ($oui =~ /^o/) {
    return 1;
  }
  else {
    return 0;
  }
}
 
 

sub videmoica {
  print "Entrer le nom du fichier à vider\n";
  $avider = <STDIN>;
  chomp $avider;

  while (!(-e $avider)) {
    print "Nom de fichier incorrect, entrer le nom complet du fichier a vider\n";
    $avider = <STDIN>;
    chomp $avider;
  }

  @contenu = <F>;
 

  open F, ">$avider" or die "Ouverture de $avider impossible $!";
  @contenu = "";
  close F or die "fermeture de $avider impossible $!";

  print "le fichier $avider à été vider de son contenu, voulez vous continuer avec un autre\n";
  $oui = <STDIN>;
  chomp $oui;
}

sub oncontinu {
  print "le fichier $avider à été vider de son contenu, voulez vous continuer avec un autre\n";
  $oui = <STDIN>;
  chomp $oui;
}

print "bon ben Tchao\n";

END;

retour



index.html => Perl => exemple de script