Perl教程
Perl控制语句
Perl高级

Perl 命令行参数

Perl 命令行参数

命令行参数以与任何其他语言相同的方式发送到 Perl 程序。 @ARGV 数组保存命令行参数。即使使用"use strict"也不需要使用变量。默认情况下,此变量始终存在,并且命令行中的值会自动放置在此变量中。要访问脚本的命令行参数,您只需要从@ARGV 数组中读取。
Perl 允许通过使用<> 将@ARGV 数组用作文件名。当从 <> 读取时,$ARGV 包含当前文件的名称。

@ARGV 数组元素

@ARGV 数组的工作方式与普通数组相同。它的第一个参数是 $ARGV[0],第二个是 $ARGV[1],依此类推。

Perl 命令行参数示例

让我们看一个打印命令行参数的简单示例。在此示例中,我们将打印一条欢迎消息,并将用户名作为命令行中的参数。我们需要两个命令行参数作为用户的名字和姓氏。
步骤 1 在您的系统中创建一个脚本 welcome.pl。
#!/usr/bin/perl-w
# (1) check for the number of command-line arguments entered
$number_args = $#ARGV + 1;
if ($number_args != 2) {
    print"Wrong entry. Please enter your full name.\n";
    exit;
}
# (2) if two command line arguments received,
$firstName=$ARGV[0];
$lastName=$ARGV[1];
print"Welcome $firstName $lastName at lidihuo.\n";
在上面的脚本中,首先会检查是否提供了两个命令行参数。如果没有,它会给出错误的输入错误。如果是,它会将这些参数分别处理为 $ARGV[0] 和 $ARGV[1]。
Step2 在您的控制台中以 perl Welcome 运行脚本.pl 克里斯蒂安·格雷
注意: 在执行此命令之前,请确保您位于包含脚本welcome.pl 的目录中
Perl Command line arguments 1
这是你会得到的输出
Step2 在您的控制台中以 perlwelcome.pl Christian
的身份运行脚本,
在这里,我们通过命令行中只有一个参数。
Perl Command line arguments 2
在输出中,您可以看到传递一个参数的错误输入消息。

使用循环的 Perl 命令行参数示例

现在我们将运行一个循环来打印命令行参数。在此示例中,您可以输入任意数量的参数。
Step1 在您的系统中创建一个脚本 loop.pl。
#!/usr/bin/perl
$get_args = $#ARGV + 1;
print"Total command line arguments received: $get_args\n";
foreach $argument (0 .. $#ARGV) {
    print"$ARGV[$argument]\n";
}
Step2 在您的控制台中以 perl loop.pl abcdefgh
的形式运行该脚本 Perl 命令行参数 3
看看上面的输出,它还显示了命令行传递的总参数。这里我们传递了 8 个参数。

Perl Getopt::Long

简单的命令行选项是使用 ?s 选项完成的。复杂的命令行选项是使用 Getopt::Std 和 Getopt::Long 完成的。
Getopt 代表 GetOptions。它根据我们给它的配置处理@ARGV 的内容。它根据处理返回 true 或 false 值。
示例:
在此示例中,我们很好地从命令行获取用户的年龄.
use strict;
use warnings;
use 5.010;
use Getopt::long qw(GetOptions);
my $x;
GetOptions('from=s' => \$x) or die "Usage: $0--from NAME\n";
say"According to your age which is $x:";
if ($x >=18) {
   say "You are eligible to vote";
} 
我们已经声明了一个变量 $x,它将存储从标准控制台插入到--from 中的值。 from=s 声明名为--from 的命令行参数,其后带有一个字符串。它进一步映射到变量 $x。反斜杠(\) 表示我们正在传递对变量的引用。
只有当我们运行此脚本时,此脚本才会切换到 die 部分通过传递一些看起来像参数名称并以(-) 开头但未在此脚本中声明的内容。
现在,我们将运行此程序。
输出:
Perl Command line arguments 4
查看输出,之后在控制台输入age,我们得到了上面的输出。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4