Perl命令行参数

本文概述

  • @ARGV数组元素
  • Perl命令行参数示例
  • 使用循环的Perl命令行参数示例
  • Perl Getopt ::长
命令行参数以与其他任何语言相同的方式发送到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 srcmini.\n";

在上面的脚本中, 首先它将检查是否提供了两个命令行参数。如果不是, 它将给出错误的输入错误。如果是, 它将分别将这些参数作为$ ARGV [0]和$ ARGV [1]处理。
步骤2在控制台中以perl welcome.pl运行脚本
注意:在发出此命令之前, 请确保你位于包含脚本welcome.pl的目录中
Perl命令行参数

文章图片
【Perl命令行参数】这是你将在控制台中获得的输出。
步骤2在控制台中以perl welcome.pl身份运行脚本
在这里, 我们仅从命令行传递一个参数。
Perl命令行参数

文章图片
在输出中, 你会看到传递一个参数的错误输入消息。
使用循环的Perl命令行参数示例 现在, 我们将运行一个循环以打印命令行参数。在此示例中, 你可以输入任意数量的参数。
步骤1在系统中创建一个脚本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"; }

步骤2在控制台中以perl loop身份运行脚本。
Perl命令行参数

文章图片
查看上面的输出, 它还会显示在命令行上传递的总参数。在这里, 我们传递了8个参数。
Perl Getopt ::长 简单的命令行选项是使用?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。反斜杠(\)表示我们正在传递对该变量的引用。
仅当我们通过传递类似于参数名称并以(-)开头但未在此脚本中声明的内容来运行此脚本时, 此脚本才会切换为部分。
现在, 我们将运行该程序。
输出
Perl命令行参数

文章图片
查看输出, 在控制台上输入age后, 我们得到了上面的输出。

    推荐阅读