Lors de l'écriture des scripts Perl, la plupart de ceux qui viennent du monde du système d'administration ou de celui de l'écriture de scripts Unix ou Linux vont essayer de continuer à utiliser les commandes Unix normales rm
, cp
et mv
en les appelant soit entre les guillemets obliques inversés soit avec la fonction prédéfinie system
.
Cette technique fonctionne sur la plateforme qu'ils utilisent, mais fait perdre l'un des principaux avantages que Perl a apporté au monde de l'administration du système Unix. Voyons comment nous pouvons exécuter ces opérations avec Perl d'une manière indépendante de la plateforme, et sans passer par un programme shell.
Supprimer
Le nom de la fonction prédéfinie en Perl est unlink
.
Cette fonction supprime un ou plusieurs fichiers du système de fichiers.
Elle est similaire à la commande rm
sous Unix et à la commande del
sous DOS/Windows.
unlink $fichier;
unlink @fichiers;
Elle utilise $_, la variable par défaut de Perl, si aucun paramètre n'est donné.
Pour une documentation complète, voir perldoc -f unlink.
Renommer
Le nom de la fonction prédéfinie en Perl est rename
.
Cette fonction renomme ou déplace un fichier.
Elle est similaire à la commande mv
sous Unix et à la commande rename
sous DOS/Windows.
rename $old_name, $new_name;
Comme cela ne fonctionne pas dans tous les systèmes de fichiers, la solution recommandée est la fonction move
du module File::Copy
:
use File::Copy qw(move);
move $old_name, $new_name;
Pour une documentation complète, voir :
Copier
Il n'existe pas de fonction prédéfinie copy
dans le noyau de perl.
La méthode standard pour copier un fichier est d'utiliser la fonction copy
du module File::Copy.
Ceci est similaire à la commande cp
sous Unix et à la commande copy
de DOS/Windows.
use File::Copy qw(copy);
copy $old_file, $new_file;
Pour une documentation complète, voir perldoc File::Copy.