0

嗨,我正在尝试使用此答案https://stackoverflow.com/a/1712480/1740992中编写的代码:

foreach (@ARGV){
   print "file: $_\n";
 # open your file here...
   #..do something
 # close your file
}

我不知道如何引用这个论点。当我的 scipt 只在一个文件上运行时,我通过运行以下命令打开它:

$kml = "adair.kml";
open INPUT, "<$kml";

我用什么替换我的文件名?我试过了$ARGV[n]

谢谢

4

3 回答 3

3

你已经在使用它了,它是$_

您可以使用命名变量来代替:

foreach my $foo (@ARGV){
于 2013-07-01T16:52:59.923 回答
2
for my $arg (@ARGV) {
    open my $fh, '<', $arg or die "Cannot open '$arg': $!";
    # ...
    close $fh;
 }
于 2013-07-01T16:53:13.733 回答
0

您的代码块:

$kml = "adair.kml";
open INPUT, "<$kml";

应替换为:

use strict;
use warnings;

my $kml = $ARGV[0];
open my $input_fh, '<', $kml or die "Couldn't open $kml $!";

如果您的代码仅使用一个参数运行。

于 2013-07-01T17:10:51.193 回答