Je débute en perl et, pour me faire la main, j'ai écrit un petit
programme destiné à copier des titres de dvd. Hélas, j'ai un petit souci
avec un bout de code :
@sortie = `lsdvd $Dev_dvd`;
print "\n";
my @dvd_title = grep s/Disc Title: //, @sortie;
my $dvdtitle = $dvd_title[0];
@sortiegrep = grep s/Disc Title:/Titre du disque :/, @sortie;
@sortiegrep = grep s/_/ /, @sortie;
print "Titre du DVD : @sortiegrep\n";
Ceci affiche bien le titre du dvd, mais je voudrais utiliser cette
"@sortiegrep" pour créer un répertoire du même nom. Or, si j'utilise
directement @sortiegrep il y a un saut de ligne après (normal). Je
n'arrive pas à récupérer cette valeur comme scalaire et enlever ce saut
de ligne...
Quelqu'un aurait-il une idée ?
Merci d'avance.
PS : Si je m'exprime mal j'en suis désolé. Je suis à votre disposition
pour tout renseignement.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacques Caron
Salut,
On Mon, 02 May 2005 22:58:20 +0200, Nicolas Roudninski wrote:
Je débute en perl et, pour me faire la main, j'ai écrit un petit programme destiné à copier des titres de dvd. Hélas, j'ai un petit souci avec un bout de code :
@sortie = `lsdvd $Dev_dvd`; print "n"; my @dvd_title = grep s/Disc Title: //, @sortie; my $dvdtitle = $dvd_title[0]; @sortiegrep = grep s/Disc Title:/Titre du disque :/, @sortie; @sortiegrep = grep s/_/ /, @sortie; print "Titre du DVD : @sortiegrepn";
Ceci affiche bien le titre du dvd, mais je voudrais utiliser cette "@sortiegrep" pour créer un répertoire du même nom. Or, si j'utilise directement @sortiegrep il y a un saut de ligne après (normal). Je n'arrive pas à récupérer cette valeur comme scalaire et enlever ce saut de ligne...
Pourquoi continuer à utiliser des tableaux là où (je suppose) il ne devrait y avoir qu'une seule valeur? Les deux lignes @sortiegrep... peuvent être remplacées par: $dvdtitle =~ s/Disc Title:/Titre du disque:/; $dvdtitle =~ s/_/ /g;
Et pour enlever le n à la fin, au choix, soit un bête chop $dvdtitle si tu es sûr qu'il y en a un à chaque fois. Sinon chomp $dvdtitle ou encore dvdtitle =~ s/n// ça marche aussi.
Au passage, je ne suis pas convaincu que grep s/.../.../ soit vraiment ce que tu cherches, peut-être que grep /.../ ou map s/.../.../ seraient plus adaptés (même si ça marche, je pense que ça risque d'avoir des effets surprenants que tu n'anticipes pas forcément).
Bon courage...
Jacques. -- Interactive Media Factory Création, développement et hébergement de services interactifs: SMS, SMS+, Audiotel... http://www.imfeurope.com/
Salut,
On Mon, 02 May 2005 22:58:20 +0200, Nicolas Roudninski
<nroudninski@wanadoo.fr> wrote:
Je débute en perl et, pour me faire la main, j'ai écrit un petit
programme destiné à copier des titres de dvd. Hélas, j'ai un petit souci
avec un bout de code :
@sortie = `lsdvd $Dev_dvd`;
print "n";
my @dvd_title = grep s/Disc Title: //, @sortie;
my $dvdtitle = $dvd_title[0];
@sortiegrep = grep s/Disc Title:/Titre du disque :/, @sortie;
@sortiegrep = grep s/_/ /, @sortie;
print "Titre du DVD : @sortiegrepn";
Ceci affiche bien le titre du dvd, mais je voudrais utiliser cette
"@sortiegrep" pour créer un répertoire du même nom. Or, si j'utilise
directement @sortiegrep il y a un saut de ligne après (normal). Je
n'arrive pas à récupérer cette valeur comme scalaire et enlever ce saut
de ligne...
Pourquoi continuer à utiliser des tableaux là où (je suppose) il ne
devrait y avoir qu'une seule valeur? Les deux lignes @sortiegrep...
peuvent être remplacées par:
$dvdtitle =~ s/Disc Title:/Titre du disque:/;
$dvdtitle =~ s/_/ /g;
Et pour enlever le n à la fin, au choix, soit un bête chop $dvdtitle si
tu es sûr qu'il y en a un à chaque fois. Sinon chomp $dvdtitle ou encore
dvdtitle =~ s/n// ça marche aussi.
Au passage, je ne suis pas convaincu que grep s/.../.../ soit vraiment ce
que tu cherches, peut-être que grep /.../ ou map s/.../.../ seraient plus
adaptés (même si ça marche, je pense que ça risque d'avoir des effets
surprenants que tu n'anticipes pas forcément).
Bon courage...
Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/
On Mon, 02 May 2005 22:58:20 +0200, Nicolas Roudninski wrote:
Je débute en perl et, pour me faire la main, j'ai écrit un petit programme destiné à copier des titres de dvd. Hélas, j'ai un petit souci avec un bout de code :
@sortie = `lsdvd $Dev_dvd`; print "n"; my @dvd_title = grep s/Disc Title: //, @sortie; my $dvdtitle = $dvd_title[0]; @sortiegrep = grep s/Disc Title:/Titre du disque :/, @sortie; @sortiegrep = grep s/_/ /, @sortie; print "Titre du DVD : @sortiegrepn";
Ceci affiche bien le titre du dvd, mais je voudrais utiliser cette "@sortiegrep" pour créer un répertoire du même nom. Or, si j'utilise directement @sortiegrep il y a un saut de ligne après (normal). Je n'arrive pas à récupérer cette valeur comme scalaire et enlever ce saut de ligne...
Pourquoi continuer à utiliser des tableaux là où (je suppose) il ne devrait y avoir qu'une seule valeur? Les deux lignes @sortiegrep... peuvent être remplacées par: $dvdtitle =~ s/Disc Title:/Titre du disque:/; $dvdtitle =~ s/_/ /g;
Et pour enlever le n à la fin, au choix, soit un bête chop $dvdtitle si tu es sûr qu'il y en a un à chaque fois. Sinon chomp $dvdtitle ou encore dvdtitle =~ s/n// ça marche aussi.
Au passage, je ne suis pas convaincu que grep s/.../.../ soit vraiment ce que tu cherches, peut-être que grep /.../ ou map s/.../.../ seraient plus adaptés (même si ça marche, je pense que ça risque d'avoir des effets surprenants que tu n'anticipes pas forcément).
Bon courage...
Jacques. -- Interactive Media Factory Création, développement et hébergement de services interactifs: SMS, SMS+, Audiotel... http://www.imfeurope.com/