2012-07-10 72 views
2

可能重複:
How can I pass command-line arguments to a Perl program?Perl的輸入參數

我有解析的輸入文件,並且輸出.stat文件和.csv文件的代碼。我需要編寫什麼來從這樣的命令提示符運行我的Perl腳本?

perl myprogram.pl -i "C:\temp\inputfile.txt" -o "C:\temp\myoutput.csv" -s "C:\temp\myoutput.stat" 

凡-i是輸入文件(必需)和-o爲CSV輸出文件位置(必需)和-s爲.stat文件(可選)的輸出文件。我已經有了程序的代碼,但需要實現參數,以便它們可以在命令行中運行。謝謝。

+0

muh,鏈接的帖子沒有提到檢查所有必需的參數。這是一個確切的副本? – ikegami 2012-07-10 19:37:27

回答

4
use Getopt::Long qw(GetOptions); 

sub usage { 
    print STDERR @_ if @_; 
    print STDERR ...; 
    exit(1); 
} 

sub help { 
    print ...; 
    exit(0); 
} 

my $input_qfn; 
my $csv_qfn; 
my $output_qfn; 

GetOptions(
    "help|h|?" => \&help, 
    "i=s"  => \$input_qfn, 
    "o=s"  => \$csv_qfn, 
    "s=s"  => \$stat_qfn, 
) or usage(); 

defined($input_qfn) 
    or usage("-i option is required\n"); 
defined($csv_qfn) 
    or usage("-o option is required\n");