comment faire pour demander puis récupérer la saisie de mon clavier pour utilisé ce paramètre dans mon script ?
![]()
comment faire pour demander puis récupérer la saisie de mon clavier pour utilisé ce paramètre dans mon script ?
![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part chomp($saisie = <STDIN>);
La réponse de philou est celle utilisée à 99%.
En complément, si tu as besoin de faire quelque chose de plus évolué, regarde ceci.
- Les meilleurs cours et tutoriels Perl et Perl 6 pour vous former ;
- FAQ Perl, Perl 6 et Perl/Tk d'entraide ;
- Les news sur la rubrique Perl ;
- S'abonner au compte Twitter de la rubrique Perl ;
- Mes tutoriels developpez.com.
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
Il existe aussi un module de saisie de mot de passe : Term::ReadPassword
- Les meilleurs cours et tutoriels Perl et Perl 6 pour vous former ;
- FAQ Perl, Perl 6 et Perl/Tk d'entraide ;
- Les news sur la rubrique Perl ;
- S'abonner au compte Twitter de la rubrique Perl ;
- Mes tutoriels developpez.com.
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
Autre question, j ai cru que ca marche mais
le prog ca marche mais j ais pas mon fichier de sortie ????
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 chomp($saisie = <STDIN>); open(FILE2, ">>${saisie}.txt")|| die "Erreur E/S:$!\n"; ### fichier de sortie
Dans ce contexte, il est souvent souhaitable d'accepter ce genre de paramètre, aussi par ligne de commande (soit en utilisant directement @ARGV, soit en utilisant un module de gestion des options de lancement comme Getopt::Long).
Exemple avec perl 5.10 minimum:
Ton script se tue avec le message d'erreur du die ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 use 5.10.0; chomp(my $in_file = $ARGV[0] // <STDIN>); chomp(my $out_file = $ARGV[1] // <STDIN>);
Le souci dans la récupération des fichiers en argument est la gestion des espaces dans les chemins, la conversion des backslash en slash, etc. Le plus propre est d'utiliser les arguments à la linux. Voici un exemple de programme :
Pour appeler ton programme, tu feras
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #!/usr/bin/perl use strict; use warnings; use Getopt::Long; my ( $fichier_in, $fichier_out ) = (); GetOptions( 'in=s' => \$fichier_in, 'out=s' => \$fichier_out, ); unless ( defined $fichier_in and defined $fichier_out ) { print "USAGE : $0 -in fichier_entree -out fichier_sorti\n"; } print "entree : $fichier_in\n"; print "Sorti : $fichier_out\n";Explication : Comment récupérer proprement les arguments de la ligne de commande ?prog.pl -in "C:/fichier.txt" -out "C:/Program Files/tutu.txt"
- Les meilleurs cours et tutoriels Perl et Perl 6 pour vous former ;
- FAQ Perl, Perl 6 et Perl/Tk d'entraide ;
- Les news sur la rubrique Perl ;
- S'abonner au compte Twitter de la rubrique Perl ;
- Mes tutoriels developpez.com.
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
Non, le module Getopt::Long, et seulement si tu utilises la solution proposée par djibril![]()
c a d
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 use strict; use warnings; use Getopt::Long; my ( $fichier_in, $fichier_out ) = (); GetOptions( 'in=s' => \$fichier_in, 'out=s' => \$fichier_out, ); unless ( defined $fichier_in and defined $fichier_out ) { print "USAGE : $0 -in fichier_entree -out fichier_sorti\n"; } open(FILE2, ">>$fichier_out")|| die "Erreur E/S:$!\n";![]()
en fait j ai pas bien saisie au début
je voulais utiliser
pour récupérer le nom du fichier de sortie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 chomp
Partager