Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1637845
  • 博文数量: 126
  • 博客积分: 1541
  • 博客等级: 上尉
  • 技术积分: 1914
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-20 11:14
文章分类

全部博文(126)

文章存档

2014年(21)

2013年(42)

2012年(63)

分类: Python/Ruby

2012-11-06 19:28:37

$# 最后一个数组元素的索引
yangfeng@sbuild:~/perl$ cat test.pl 
#!/usr/bin/perl
print "$#ARGV\n"

yangfeng@sbuild:~/perl$ ./test.pl        
-1
yangfeng@sbuild:~/perl$ ./test.pl  tt    
0
yangfeng@sbuild:~/perl$ ./test.pl  tt ttt
1


$$类似于 shell 获得当前进程id

$#作为一个变量表示打印数字时默认的数字输出格式,后面加上ARGV又表示什么意思呢?

$#ARGV为命令行参数(不包括命令本身)的个数减一,即数组@ARGV最后一个元素的索引。用处也就是在程序开始时判断命令行参数个数,或者直接操作最后一个命令行参数。

本质上,$#加数组名表示数组最后一个元素的索引,其实,这种糟糕的语法来源于C Shell,在实际的代码中不常见。判断命令行参数个数,可以把@ARGV用在标量上下文中,直接操作最后一个数组元素,可以利用负数索

哦 理解了  最后一个的索引是-1 这个采用负数索引的 一般只有最后一个元素才采用这种负数索引 

最后一个元素的索引是等于 参数长度 +-1

阅读(831) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~