déjà, mixer perl et bash c'est pas le mieux. Par exemple pour le find, il vaut mieux utiliser le module file:find de perl (http://world.std.com/~swmcd/steven/perl/pm/find.html pour des exemples), mais je ne sais pas si ce module est installé sur syno.
éviter l'usage de grep qui renvoie normalement un tableau des éléments remplissant la condition, tu ne fais que vérifier si c'est vrai, donc ce n'est pas la fonction adaptée (en fait, c'est une solution facile, mais il faudrait alors prendre le nombre d'éléments du tableau renvoyé, ou en faire un scalar.
ensuite, le code n'est pas parfait, tu peux retravailler un peu.
ex :
foreach (@files) {
my $file = $_;
chomp($file);
s'écrit mieux
foreach my $file (@files) {
chomp($file);
ou
foreach (@files) {
chomp;
my $file = $_;
Mais le message d'erreur est vraisemblablement donné par synoindex, que tu appelles ainsi :
my $result = `synoindex -g \"$file\" -t music`;
essaye comme ça :
my $result = qx(synoindex -g "$file" -t music);
man perlop pour les détails.