Bonjour à tous,

Je cherche à exécuter des commandes unix directement à partir d'un script perl. j'ai des fichiers dont l'extension est .fa.ct et je voudrais les modifier en .ct ; j'arrive très bien à le faire grace à la commande unix :
ls *.fa.ct | sed 's/\(.*\)\.fa\.ct/mv \1\.fa\.ct \1\.ct/g' | sh

mais quand je l'inclus dans mon script perl comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/perl
use strict;
use warnings;
 
 
my $rep = "/home/stephanie/Téléchargements/unafold-3.8/Liste25_négative";
 
chdir $rep;
 
my @ss_file = glob('*.fa.ct');
 
foreach my $v (@ss_file) {
	`s/\(.*\)\.fa\.ct/mv \1\.fa\.ct \1\.ct/g` ;
	print $v."\n";
 
 
}
D'un part, j'obtiens l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
sh: Syntax error: word unexpected (expecting ")")
et ensuite cela ne modifie pas le nom de mes fichiers dans mon dossier. Peut être que ce type de commande n'est pas réalisable via perl ?

Merci d'avance pour vos réponses.