如果我向 ARGV 传递两组值,它如何在 Perl 中进行处理?

How does ARGV get processed in Perl if I pass two sets of values to it?

如果我使用 ./test.pl file1 file2,我知道这些值存储在 @ARGV 中作为第一个和第二个值,这样 $ARGV[0] 等于 file 1 等等。

但是,如果我将命令作为 ./test.pl ./folder1/* ./folder2/* 传递,其中每个文件夹都有 1000 个编号的文件,@ARGV 是如何编号的?


我进行了编辑以更正相关错误。 $ARGV[1] 应该是 file2,而不是答案和评论中指出的 file1。

ARGV[0]first value,因此 $ARGV[0]./folder1/0001$ARGV[1]./folder1/0002,依此类推。 $ARGV[1000] 将是 ./folder2/1001

(假设您的文件被命名为 00011001

use strict;
use warnings;
use utf8;
use Data::Dumper;

print Dumper @ARGV;

示例 1

./example.pl file1 file2

输出是

$VAR1 = 'file1';
$VAR2 = 'file2';

示例 2

./example.pl folder1/* folder2/*

输出是

$VAR1 = 'folder1/file1';
$VAR2 = 'folder1/file2';
$VAR3 = 'folder1/file3';
$VAR4 = 'folder1/file4';
$VAR5 = 'folder1/file5';
$VAR6 = 'folder2/file1';
$VAR7 = 'folder2/file2';
....