1

以下のコードは、コマンド ラインに入力された引数の数を表示するためのものです。

#!/usr/bin/perl –w
$myVar = $#ARGV + 1;
print "Hi " , $ARGV[0] , "\n";
print "You have $myVar arguments\n";

perlintro の$#ARGVは、配列の最後の要素のインデックスを示す特別な変数です。

この場合、コマンドラインに値を入力しないと、値はどのよう$myVarに 0 になりますか?

配列に要素がない場合、「要素なし」のインデックスが -1 であるためですか?-1 + 1 = 0 として。

4

4 に答える 4

2

perlvarページによると:

@ARGV 配列 @ARGV には、スクリプト用のコマンドライン引数が含まれます。$ARGV[0] は最初の引数であり、プログラムのコマンド名自体ではないため、通常、$#ARGV は引数の数から 1 を引いたものです。コマンド名は $0 を参照してください。

于 2013-04-18T07:37:42.167 に答える