2013-08-30 4 views
1

Comment prendre l'entrée de fichier de ligne de commande en Perl de l'utilisateur?Comment prendre l'entrée de fichier de ligne de commande dans Perl de l'utilisateur?

my $filename = 'devices.xml'; 
my $filename1= 'discoveryinstances.xml'; 

Au lieu d'utiliser l'emplacement statique XMLfiles, puis-je obtenir un emplacement XML dynamique de l'utilisateur qui peut être dans un autre répertoire?

use XML::LibXML; 
use XML::XPath; 
use XML::XPath::XMLParser; 
print "Enter the file location for devices.xml file"."\n"; 
my $firstfile =<STDIN>; 
my $filename = chomp($firstfile); 
print "Enter the file location for discoveryinstances.xml file"."\n"; 
my $secondfile =<STDIN>; 
my $filename1=chomp($secondfile); 
solution

pour c'était:

print "Enter the location:\n"; 
chomp(my $filename = <STDIN>); 
+0

arguments de ligne de commande sont exposés dans la [ '@ ARGV'] (http://perldoc.perl.org/perlvar.html # General-Variables) tableau. – tripleee

+0

duplication possible de [Comment puis-je obtenir le chemin complet de l'emplacement du fichier à utiliser dans le programme perl?] (Http://stackoverflow.com/questions/18526762/how-do-i-get-the-full-path-of -file-lieu à utiliser en perl-programme) – RobEarl

Répondre

2

Vous pouvez également l'utiliser pour prendre des entrées multiples de l'utilisateur

my @filename = <STDIN>; 

Dans le tableau de nom de fichier u ont tous les noms de fichiers que l'utilisateur a donné

Pour 2 fichiers fixes

my $firstfile =<STDIN>; 
my $secondfile =<STDIN>; 

Maintenant u ont tous deux les fichiers

+0

Si j'implémente en utilisant cette fonctionnalité, puis-je rediriger ma sortie vers un fichier texte? – JustCoder

+0

vous pouvez le faire .. saisir l'entrée de l'utilisateur si vous voulez seulement deux fichiers .puis créer deux variables scalaires .et stocker les fichiers et les utiliser – Developer

+0

essayer celui-ci et laissez-moi savoir si vous avez besoin d'aide supplémentaire. C'est la chemin simple – Developer

0

Utilisez la collection $ ARGV pour lire les arguments de ligne de commande.

+0

u peut me donner des exemples de mise en œuvre qui? – JustCoder

1

Utilisez ce module, Getopt::Long - Traitement étendu des options de ligne de commande. C'est le meilleur module pour les options de ligne de commande.

exemple comme

use strict; 
use Getopt::Long; 
use Data::Dumper; 
my %args; 
GetOptions(\%args, "filename1=s" 
        , "filename2=s" 
      ) or die "Invalid Options \n"; 

print Dumper(\%args); 

programme Exécuter comme:

abc.pl -filename1 "abc.xml" -filename2 "test.xml" 
+0

Dans Getopt :: Long, nous avons plusieurs options de prise d'arguments mais j'ai juste besoin de prendre l'emplacement du fichier d'entrée. Rien de plus que cela. – JustCoder

Questions connexes