在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 13939|回复: 13

[求助] perl保留变量@_和$_

[复制链接]
发表于 2011-11-17 09:32:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
看了《perl语言入门》后,书上讲@_变量是perl自动将参数列表化名为该数组,但是当我在子程序内部使用@_[0]这种标识方法时,就会报下列警告:scalar value @_[0] better written as $_[0];针对这种情况,我有以下问题:1、既然perl在调用子程序时,将参数列表传入@_这个数组,那我使用@_[0]这种形式从该数组中取数不是理所当然的吗?那么为啥编译器会报出那种警告?2、$_与@_这两个标识符有啥差别?
发表于 2011-11-17 10:01:39 | 显示全部楼层
question 1 :
数组@xxx调用时,每个元素应该用$xxx[0]/$xxx[1]...   来表示
所以$_[0]表示@_的一个元素,和默认缺省变量$_无关,是两个东西
请查阅数组元素调用相关章节

question 2 :
$_  是perl的缺省变量
@_ 是perl的缺省数组
 楼主| 发表于 2011-11-17 10:28:18 | 显示全部楼层
回复 2# 射门靴


    这样一说,确实是清楚多了,谢谢!
发表于 2011-11-18 00:13:55 | 显示全部楼层
@_ 是不是用在 sub 传参那里?


sub XXX {
  my @vars = @_ ;
  s.fsfa

afsf
}
 楼主| 发表于 2011-11-18 09:04:37 | 显示全部楼层
回复 4# icfbicfb


    对的,是perl子函数用于接收参数传递的!
发表于 2011-11-18 11:03:30 | 显示全部楼层
我最近也在学习小骆驼第五版,到时候请教你们啊,都是高手
 楼主| 发表于 2011-11-18 11:36:58 | 显示全部楼层
回复 6# miaoyue1999


    一同讨论,共同进步!
发表于 2011-11-18 22:51:25 | 显示全部楼层
第5版讲 5.10的,

6版讲5。12
发表于 2014-5-8 00:22:48 | 显示全部楼层
good book
发表于 2015-1-22 18:19:33 | 显示全部楼层
$_默认变量
@_默认数组
good
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 03:42 , Processed in 0.027757 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表