【问题标题】:How to refer to perl arguments when looping through them?遍历它们时如何引用 perl 参数?
【发布时间】:2013-07-01 16:51:12
【问题描述】:

您好,我正在尝试使用此答案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]

谢谢

【问题讨论】:

    标签: perl


    【解决方案1】:

    你已经在使用它了,it is $_

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

    foreach my $foo (@ARGV){
    

    【讨论】:

      【解决方案2】:
      for my $arg (@ARGV) {
          open my $fh, '<', $arg or die "Cannot open '$arg': $!";
          # ...
          close $fh;
       }
      

      【讨论】:

      • 这么少的行,这么清醒!
      【解决方案3】:

      您的代码块:

      $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 $!";
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-08
        • 2010-11-22
        • 1970-01-01
        • 1970-01-01
        • 2012-05-10
        • 1970-01-01
        • 2016-08-31
        • 2021-11-26
        相关资源
        最近更新 更多