【问题标题】:How to take command line file input in Perl from user?如何从用户那里获取 Perl 中的命令行文件输入?
【发布时间】:2013-08-30 20:07:24
【问题描述】:

如何从用户那里获取 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> );

【问题讨论】:

标签: perl command-line perl-module


【解决方案1】:

您也可以使用它来获取用户的多个输入

my @filename = <STDIN>;

在文件名数组中,你有用户给的所有文件名

对于固定的2个文件

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

现在你有两个文件

【讨论】:

  • 如果我使用这个功能来实现,我可以将我的输出重定向到一个文本文件吗?
  • 你可以这样做......如果你只想要两个文件,请从用户那里获取输入。然后创建两个标量变量。并存储文件并使用它们
  • 试试这个,如果您需要进一步的帮助,请告诉我。这是简单的方法
  • C:\Users\dudmo01\Desktop\PERL\test>perl -w temp2.​​pl 输入 devices.xml 文件的文件位置 "C:\Users\dudmo01\Desktop\PERL\test\ devices.xml" 输入 discoveryinstances.xml 的文件位置 文件 "C:\Users\dudmo01\Desktop\PERL\test\discoveryinstances.xml" 输入设备 ID 以查找 I.P 地址 无法在 C: 打开文件 '1' /Perl64/site/lib/XML/XPath.pm 第 53 行, 第 2 行。
  • use XML::LibXML; use XML::XPath; use XML::XPath::XMLParser; print "Enter the file location for devices.xml file"."\n"; my $firstfile =&lt;STDIN&gt;; my $filename = chomp($firstfile); print "Enter the file location for discoveryinstances.xml file"."\n"; my $secondfile =&lt;STDIN&gt;; my $filename1=chomp($secondfile);
【解决方案2】:

使用这个模块,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"

【讨论】:

  • 在 Getopt::Long 中,我们有多种接受参数的选项,但我只需要获取输入文件的位置。仅此而已。
【解决方案3】:

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

【讨论】:

  • 你能给我任何例子来实现它吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-17
  • 1970-01-01
  • 2019-04-11
  • 1970-01-01
相关资源
最近更新 更多