设为首页 收藏本站
查看: 1047|回复: 0

[经验分享] perl标量上下文小结

[复制链接]

尚未签到

发表于 2017-5-17 11:51:06 | 显示全部楼层 |阅读模式
本人最近在学习perl语言的过程中,遇到一些常常容易出错的地方.特别是标量上下文这一块.当数组或哈希赋值给一个变量时,常常会因为中括号[]和()的混淆而造成语法错误.下面将通过打印的方式来理解标量上下文是怎么一回事.
#哈希
my %sales = (Jim=>2, Tom=>3, Lily=>2,);
my $sales = {Jim=>2, Tom=>3, Lily=>2,};
my $sales_length = %sales;
print %sales,"\n";
print "$sales\n";
print "$sales_length\n";
打印结果如下:
24Lily2Jim2Tom3
HASH(0x26e4098)
3/8
注意  sales是正常hash命名,用的是括号();而把一个匿名哈希赋值给一个标量$sales时返回的是一个hash的引用地址,用的是花括号{};当把一个有名哈希%sales赋值给一个标量$sales_length时,返回哈希的长度;#数组
my @array = (1,2,3,4,5,'God');
my $array = [1,2,3,4,5,'God'];
my $array_length = @array;
print "@array\n";
print "$array\n";
print "$array_length\n";
打印结果如下:
1 2 3 4 5 God
ARRAY(0x26e3160)
6
注意: @array是正常array命名,用的是括号();当把一个匿名数组赋值给一个标量$array返回一个array的引用地址,用的是中括号[];而一个有名数组@array赋值给一个标量$array_length时,返回数组长度.
附:以下是几种常见的正确写法与错误写法的比照:
错误写法正确写法
$one,$two=1,2($one,$two)=(1,2)
$array=(1,2)$array=[1,2]
$aref=('1','3','7')$aref=['1','3','7']
qw !a b c!qw !a,b,c!
$aref=[qw(foo bar baz)]
%hash={one=>1,two=>2}%hash=(one=>1,two=>2)
%hash=[qw /an anon array/]%hash=qw(one 1 two 2)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-378509-1-1.html 上篇帖子: perl 语法 及其它 下篇帖子: perl学习心得(摘记)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表