Perl: Comment faire pour supprimer les fichiers, dossiers et sous-répertoires à l'aide de “rm”?

Je suis en train de supprimer des fichiers et des dossiers à l'aide de mon script perl. Je suis à l'aide de la "rm -rf $fichier" commande pour supprimer le fichier mais sa ne fais rien.
Cependant, lorsque j'essaie la même commande sur la ligne de cmd il fonctionne et supprime les fichiers de l'amende juste.
Ci-joint l'extrait de code. Toute aide est appréciée.

for each $f (@files)
{
       system "rm -rf $f";
}

J'ai essayé cela sur un couple de machines et de son le même problème. Cependant, j'ai essayé d'utiliser d'autres commandes du système tels que mkdir, goudron etc et il fonctionne très bien.
J'ai aussi essayé de supprimer les liaisons, mais le même problème persiste.

  • Avez-vous essayé de lancer ce dans le débogueur?
  • Pourquoi voulez-vous utiliser system pour supprimer des fichiers?
  • Pourquoi ne pas utiliser remove_tree à partir de File: Chemin d'accès?
  • Nope. Je suis nouveau sur Perl et je vais donner un coup de cette.
  • À tout le moins, protéger des noms de fichiers avec system rm => -rf => $_. Il est tout aussi facile que ce que vous avez. Le prendre comme naturelles par défaut et n'utiliser que les autres types d'invocation lorsque vous avez une bonne raison de l'utiliser.
InformationsquelleAutor Naveen Gowda | 2012-04-19