2013-08-30 57 views
1

如何在用戶的Perl中使用命令行文件輸入?如何從用戶處獲取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>); 
+0

命令行參數在露出的['@ ARGV'](http://perldoc.perl.org/perlvar.html #General-Variables)數組。 – tripleee

+0

[我如何獲得文件位置在Perl程序中使用的完整路徑?](http://stackoverflow.com/questions/18526762/how-do-i-get-the-full-path-of -file-location-to-use-in-perl-program) – RobEarl

回答

2

也可以用它來採取多個來自用戶的輸入

my @filename = <STDIN>; 

在文件名的數組u有所有用戶給出的文件名稱

對於固定2個文件

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

現在u必須兩個文件

+0

如果我使用此功能實現,我可以將輸出重定向到文本文件嗎? – JustCoder

+0

你可以做到這一點..如果你只需要兩個文件,就可以從用戶那裏獲得輸入。然後創建兩個標量變量。並存儲這些文件並使用它們。 – Developer

+0

試試這個,讓我知道你是否需要進一步的幫助。這是簡單的方法 – Developer

0

使用$ ARGV採集讀取命令行參數。

+0

你能給我任何例子來實現它嗎? – JustCoder

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" 
+0

在Getopt :: Long中,我們有多個參數選項,但我只需要輸入文件的位置。除此之外,沒有什麼比這更重要的了。 – JustCoder

相關問題