我的 test.pl 脚本如下所示。
#!C:\Perl\bin\perl.exe
use strict;
use warnings;
sub printargs
{
print "@_\n";
}
&printargs("hello", "world"); # Example prints "hello world"
如果我将printargs("hello", "world");
替换为print($a, $b);
。
当我在命令行运行 perl test.pl hello world 时,如何将'hello','world'传递给$ a,$ b,谢谢。
答案 0 :(得分:4)
请阅读@ARGV
中的perldoc perlvar。
答案 1 :(得分:3)
$ ARGV [0]包含第一个参数,$ ARGV [1]包含第二个参数,等等。
$#ARGV是@ARGV数组的最后一个元素的下标,因此命令行中的参数数量是$#ARGV + 1.
答案 2 :(得分:3)
命令行参数位于@ARGV
数组中。只需将其传递给您的函数:
&print( @ARGV );
可能最好避免使用print
之类的名称 - 可能会与同名的内置函数混淆。
答案 3 :(得分:1)
您想要访问Perl中的“命令行参数”。
基本上Perl会将实际脚本名称后面的字符串视为名为@ARGV的数组。
以下是简要教程:http://devdaily.com/perl/edu/qanda/plqa00001.shtml
只需谷歌“perl命令行参数”了解更多。
答案 4 :(得分:0)
基本上,正如其他人所说,@ ARGV列表就是你问题的答案。
现在,如果你想进一步为你的程序定义命令行选项,你也应该在getargs.
处出现问题。答案 5 :(得分:0)
这也会在命令行参数中打印“hello world”,同时根据请求将数据传递给$ a和$ b。
#!/usr/bin/perl -w
use warnings;
use strict;
sub printargs($$)
{
print $_[0] . " " . $_[1] . "\n";
}
my($a,$b) = ($ARGV[0],$ARGV[1]);
printargs($a,$b);