如何从用户那里获取Perl中的命令行文件输入?
my $filename = 'devices.xml';
my $filename1= 'discoveryinstances.xml';
我可以从用户那里获得一个动态XML位置,而不是使用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> );
答案 0 :(得分:2)
您也可以使用它来从用户那里获取多个输入
my @filename = <STDIN>;
在文件名数组中,您拥有用户提供的所有文件名
对于固定的2个文件
my $firstfile =<STDIN>;
my $secondfile =<STDIN>;
现在你有两个文件
答案 1 :(得分: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"
答案 2 :(得分:0)
使用$ ARGV集合读取命令行参数。