perl 中定义的这个到底该怎么理解 我很模糊if ( $#ARGV < 0 ) { exit(1); } 5
那my$CONTROL_FILE=$ARGV[0]这个变量获取了个什么呢?非常感谢您之前的解答,相当的容易理解!...
那my $CONTROL_FILE = $ARGV[0] 这个变量获取了个什么呢?
非常感谢您之前的解答,相当的容易理解! 展开
非常感谢您之前的解答,相当的容易理解! 展开
5个回答
展开全部
首先, 这句的意思即是 "如果没有参数, 就离开这个程序"
假如你在 shell 开始执行一个 perl script(脚本), 你的写法可能是
perl myscript.pl
也有可能是
perl myscript.pl "you" "me"
这时, "you" , "me" 就是传入这个 perl script 的 argument ( 参数 )
那麼你在 script 里怎样得到这些参数呢 ?
Perl 有一个预设的变数 @ARGV 这个阵列就会装载著 "you", "me"
亦即是 @ARGV = ( "you", "me" ) ;
@array = ( 1,2,3 ) ;
print $#array; # 得出 2, $# 会给出这个 array 的最後一个 index
如果是一个空阵列, 那最後一个 index 就是 -1
当 $#ARGV < 0 的时候, 那就意味著这个一个空阵列,
亦即是, 没有入输入参数的意思了
my $CONTROL_FILE = $ARGV[0] 这个变量获取了个什么呢?
如上所举例: perl myscript.pl "you" "me"
这时, $ARGV[0] 就是 "you" 了.
$ARGV[1] 就是 "me" 喇!
假如你在 shell 开始执行一个 perl script(脚本), 你的写法可能是
perl myscript.pl
也有可能是
perl myscript.pl "you" "me"
这时, "you" , "me" 就是传入这个 perl script 的 argument ( 参数 )
那麼你在 script 里怎样得到这些参数呢 ?
Perl 有一个预设的变数 @ARGV 这个阵列就会装载著 "you", "me"
亦即是 @ARGV = ( "you", "me" ) ;
@array = ( 1,2,3 ) ;
print $#array; # 得出 2, $# 会给出这个 array 的最後一个 index
如果是一个空阵列, 那最後一个 index 就是 -1
当 $#ARGV < 0 的时候, 那就意味著这个一个空阵列,
亦即是, 没有入输入参数的意思了
my $CONTROL_FILE = $ARGV[0] 这个变量获取了个什么呢?
如上所举例: perl myscript.pl "you" "me"
这时, $ARGV[0] 就是 "you" 了.
$ARGV[1] 就是 "me" 喇!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组ARGV负责保存perl的命令行参数。该数组从下标0开始。$#ARGV表示数组的最后一个元素(不是元素个数)$ARGV[0]表示第一个元素的编号(下标)。例如:
if
(
$#ARGV
<
0
)
#因为下标应该比元素个数少1个,如果<0,则表示数组中的参数为0个
#也就是说,数组至少应该有一个参数
$CONTROL_FILE
=
$ARGV[0]
#取得的值则为数组的第一个参数
if
(
$#ARGV
<
0
)
#因为下标应该比元素个数少1个,如果<0,则表示数组中的参数为0个
#也就是说,数组至少应该有一个参数
$CONTROL_FILE
=
$ARGV[0]
#取得的值则为数组的第一个参数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$ARGV[0]是perl运行该脚本后的第一个参数。例如:
你在终端中输入:
perl myprogram.pl 45 32 hello 回车
则:perl将 45,32,“hello”分别存入@ARGV数组中,$ARGV[0]即为45;$ARGV[1]为32,,,
也可以这样写:
my $flag1 = shift; // 将 45 存入$flag1;
my $flag2 = shift; // 将 32 存入$flag2;
my $flag3 = shift; // 将 "hello" 存入$flag3;
你在终端中输入:
perl myprogram.pl 45 32 hello 回车
则:perl将 45,32,“hello”分别存入@ARGV数组中,$ARGV[0]即为45;$ARGV[1]为32,,,
也可以这样写:
my $flag1 = shift; // 将 45 存入$flag1;
my $flag2 = shift; // 将 32 存入$flag2;
my $flag3 = shift; // 将 "hello" 存入$flag3;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是做传入参数判断,如果没有参数就退出。
my $CONTROL_FILE = $ARGV[0]就是在运行perl脚本的后面跟的第一个参数。
my $CONTROL_FILE = $ARGV[0]就是在运行perl脚本的后面跟的第一个参数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询