gpt4 book ai didi

perl - 为什么 $#ARGV 是 0?

转载 作者:行者123 更新时间:2023-12-04 22:21:31 25 4
gpt4 key购买 nike

我一直在搜索 Perl 资源,但我看不出哪里出错了。我很确定我遗漏了一些明显的东西,因为当我分配
my $gArgc = $#ARGV;
但是调用我的程序 perl pkTkPtBdTkNo.pl test.txt$#ARGV等于0,我不知道为什么。

#! /usr/bin/perl -w

use strict;

my $gArgc = $#ARGV;
my $input_line;
my $bad_input;

print($gArgc);
die ("Usage pkTkPtBdTkNo.pl input-line")
if(0 == $gArgc);

$input_line = $ARGV[0];
$bad_input = ($input_line =~ /\"\d+\D+\d*\",/);
print($bad_input);

最佳答案

来自 man perlintro :

The special variable $#array tells you the index of the last element of an array: ... You might be tempted to use $#array + 1 to tell you how many items there are in an array. Don't bother. As it happens, using @array where Perl expects to find a scalar value ("in scalar context") will give you the number of elements in the array:



因此,如果传递 0 个参数,$#ARGV 将为 -1,因为数组中没有元素。如果您传递 1 个参数(如您的示例中所示),则 $#ARGV 将为 0。

关于perl - 为什么 $#ARGV 是 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17559768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com