可能重复:
How can I pass command-line arguments to a Perl program?
我有一个perl脚本,我需要在命令行上运行,但也提供三个输入文件和一个输出。我不想做STDIN,因为我正在编写一个包装器脚本,多次使用perl脚本来处理多个文件。
所以,我现在有了这个:
open (FICHIER, "<$file1") || die "file not found";
chomp($file1);
@b=<FICHIER>;
open (SPECIES, "<$file2");
$species=<SPECIES>;
chomp($species);
open (FILE3, "<$file3>");
$file3 = <FILE3>;
chomp($file3);
open (OUTFILE, ">$outfile");
chomp($outfile);
我需要做这样的事情:
perl myscript.pl textfile1 textfile2 textfile3 outputfile
我需要$ file1来表示textfile1,$ file2来表示textfile2等。
提前致谢
标记
答案 0 :(得分:1)
在主程序中,shift函数拉出关闭@ARGV的参数,这是命令行参数列表。所以你可以说:
my $file1 = shift || die "Need 4 file names";
my $file2 = shift || die "Need 4 file names";
my $file3 = shift || die "Need 4 file names";
my $outfile = shift || die "Need 4 file names";
另外,“使用严格”;和“使用警告;”是好习惯,三个参数打开::
open my $FICHIER, '<', $file1 or die "$file1 - $!";