Bonjour,
m'affiche actuellement : /home/user/Proj/test1.txt
Code : Sélectionner tout - Visualiser dans une fenêtre à part print FILE "$fic";
Mais j'aimerai seulement afficher test1
Est-ce possible?
Merci d'avance.
Bonjour,
m'affiche actuellement : /home/user/Proj/test1.txt
Code : Sélectionner tout - Visualiser dans une fenêtre à part print FILE "$fic";
Mais j'aimerai seulement afficher test1
Est-ce possible?
Merci d'avance.
En utilisant le package File::basename disponible sur CPAN.
Et ensuite :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 my $name = basename ($fic) ; print "$name\n" :
Le package s'appelle File::Basename (avec un B majuscule).
Et c'est effectivement la meilleure solution.
Sinon, une expression régulière le fait aussi:
Elle supprime tout ce qui précède le dernier /.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ($basename = $fic) =~ s!^.*/!!;
- La programmation fonctionnelle en Perl : 1. Les opérateurs de liste; 2. Les fonctions d'ordre supérieur; 3. Étendre le langage.
- Comment utiliser des décorateurs en Perl: Un tutoriel pour changer le comportement d'une fonction sans en modifier le code source
- De Perl 5 à Perl 6 : 1. Les bases; 2. Les nouveautés; 3. Approfondissements; 4. Annexe 1: Ce qui change entre Perl 5 et Perl 6; Annexe 2: Les nouveautés de Perl 6.
- Les regex et grammaires de Perl 6
- Objets, classes et rôles en Perl 6 - Tutoriel de programmation orientée objet
- Tour d'horizon du nouveau langage Perl 6
Merci, j'ai utilisé l'expression régulière.
Mais j'aimerai aussi pouvoir supprimer le '.txt' si possible ?
Pareil, tu peux utiliser le paquetage File::Basename ou une seconde expression régulière:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ($basename = $fic) =~ s!^.*/!!; # supprime le chemin $basename =~ s/\.txt$//; # supprime le point et le suffixe
- La programmation fonctionnelle en Perl : 1. Les opérateurs de liste; 2. Les fonctions d'ordre supérieur; 3. Étendre le langage.
- Comment utiliser des décorateurs en Perl: Un tutoriel pour changer le comportement d'une fonction sans en modifier le code source
- De Perl 5 à Perl 6 : 1. Les bases; 2. Les nouveautés; 3. Approfondissements; 4. Annexe 1: Ce qui change entre Perl 5 et Perl 6; Annexe 2: Les nouveautés de Perl 6.
- Les regex et grammaires de Perl 6
- Objets, classes et rôles en Perl 6 - Tutoriel de programmation orientée objet
- Tour d'horizon du nouveau langage Perl 6
Effectivement, cela marche très bien, merci!
Mais, est-ce je peux avoir si possible une explication de ces 2 expressions régulières ?
car j'aimerai au final, passer de /home/user/Proj/test_def_ghi.txt
à def --> ghi
Partager