1

如何从用户那里获取 Perl 中的命令行文件输入?

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

除了使用 XMLfiles 的静态位置,我可以从用户那里获得一个可能在其他目录中的动态 XML 位置吗?

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);

解决方案是:

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

3 回答 3

2

您还可以使用它从用户那里获取多个输入

my @filename = <STDIN>;

在文件名数组中,您拥有用户给出的所有文件名

对于固定的 2 个文件

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

现在你有两个文件

于 2013-08-30T05:58:56.317 回答
1

使用这个模块,Getopt::Long - 命令行选项的扩展处理。这是命令行选项的最佳模块。

像这样的例子

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

print Dumper(\%args);

运行程序,如:

abc.pl -filename1 "abc.xml" -filename2 "test.xml"
于 2013-08-30T05:57:54.607 回答
0

使用 $ARGV 集合来读取命令行参数。

于 2013-08-30T05:54:51.783 回答