`
Everyday都不同
  • 浏览: 714023 次
  • 性别: Icon_minigender_1
  • 来自: 宇宙
社区版块
存档分类
最新评论

perl标量上下文小结

    博客分类:
  • perl
阅读更多
本人最近在学习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)
分享到:
评论

相关推荐

    Perl标量的操作符[文].pdf

    Perl标量的操作符[文].pdf

    Perl 标量

    Perl 标量 标量是一个简单的数据单元。 标量可以是一个整数,浮点数,字符,字符串,段落或者一个完整的网页。 以下实例演示了标量的简单应用: 实例 #!/usr/bin/perl $age = 20; # 整数赋值 $name = “Runoob”; #...

    Perl 语言入门 第六版

    标量上下文与列表上下文 在标量上下文中使用产生列表的表达式 在列表上下文中使用产生标量的表达式 强制指定标量上下文 列表上下文中的 习题 第四章子程序 定义子程序 调用子程序 返回值 参数 子程序中的...

    标量源消失的标量解和标量标度的分类

    我们推导了d + 2维中最小耦合的爱因斯坦-麦克斯韦-标量重力的精确Brane解,并且标量势消失了,我们证明了这些解与Lifshitz时空是共形的,其双重QFT具有超尺度违规的特征。 这些解决方案与AdS麸和指数势所产生的畴壁...

    伪标量与标量的弱电重生和暗物质

    我们研究了铁伪暗物质场景中的电弱重生,其中伪伪标量是希格斯门户中的介体。 讨论了在我们扩展的标准模型中考虑到(伪)标量在热有效电势中的作用后,电弱相变变成一阶的。 施加来自WMAP / Planck的文物密度约束和...

    PERL编程24学时教程.pdf

    4.2.2 关于上下文的详细说明 43 4.2.3 回顾以前的几个功能 44 4.3 对数组进行操作 45 4.3.1 遍历数组 46 4.3.2 在数组与标量之间进行转换 46 4.3.3 给数组重新排序 48 4.4 练习:做一个小游戏 49 4.5 课时小结 51 ...

    标量乘法快速算法

    标量乘法的快速算法,做嵌入式工作的可以看一看

    轻标量介子为四夸克

    我们为JPC = 0 ++的基态标量四夸克提供了四夸克Betheâ€:trade_mark:Salpeter方程的数值解。 我们发现,四体方程在Bethe'Salpeter振幅中动态生成伪标量介子极。 最终的四夸克是真正的四夸克状态,由伪标量介子—...

    论文研究 - 启发性标量NS-WD二元的引力希格斯机制

    由于NS和WD的结合能不同,标量化NS-WD系统的轨道衰减实际上会产生偶极引力标量辐射,除了张量引力波,这打破了一般框架下构造的Lorentz不变性。相对论。 所产生的重力标量辐射场获得由标量能量密度决定的有效质量,...

    PERL编程24学时教程

    4.2.2 关于上下文的详细说明 43 4.2.3 回顾以前的几个功能 44 4.3 对数组进行操作 45 4.3.1 遍历数组 46 4.3.2 在数组与标量之间进行转换 46 4.3.3 给数组重新排序 48 4.4 练习:做一个小游戏 49 4.5 课时小结 51 ...

    再次探讨伪标量介子和胶球混合以及寻找伪标量胶球状态的关键问题

    这样的结果与最近的权利要求相一致,即在不同通道中观察到的两个可能状态η(1405)和η(1475)的稍微移动的峰值位置实际上源自具有三角形奇异性干扰的单个状态。 通过解决这一长期存在的悖论,人们应该更加关注更...

    perl语言脚本文档说明

    4.2.2 关于上下文的详细说明 43 4.2.3 回顾以前的几个功能 44 4.3 对数组进行操作 45 4.3.1 遍历数组 46 4.3.2 在数组与标量之间进行转换 46 4.3.3 给数组重新排序 48 4.4 练习:做一个小游戏 49 4.5 课时小...

    伪标量胶球及其第一个激发态衰减为标量和伪标量介子及其第一个激发态

    我们通过构造一个相互作用的拉格朗日函数来扩展伪标量胶球及其第一个激发态的研究,该相互作用将伪标量胶球的两体和三体衰变JPC = 0- +分解为(伪)标量和激发(伪) 介子介子,以及通过构造另外两个不同的手性拉格...

    椭圆曲线上标量乘快速算法研究

    椭圆曲线上标量乘快速算法研究,介绍有关椭圆曲线理论的基础知识与经典快速实现算法等

    perl编程24学时教程.rar

    4.2.2 关于上下文的详细说明 43 4.2.3 回顾以前的几个功能 44 4.3 对数组进行操作 45 4.3.1 遍历数组 46 4.3.2 在数组与标量之间进行转换 46 4.3.3 给数组重新排序 48 4.4 练习:做一个小游戏 49 4.5 课时小...

    Perl语言入门(第五版-中文版).pdf

    标量上下文与列表上下文 列表上下文中的(stdin) 习题 第四章子程序 定义子程序 调用子程序 返回值 参数 子程序中的私有变量 长度可变的参数列表 关于词法(my)变量 use strict编译命令 return操作符 非...

    标量与簇的应用

    标量与簇的应用

    介子标量形式因子和轻夸克质量的模型无关约束

    我们在Meiman-Okubo框架中研究介子标量形式因子,实现了低于无弹性KK阈值的相位,这是根据Watson定理从ππ标量等标量相移δ00得知的。 标量相关器的扰动QCD展开和相移δ00的最新知识用作输入。 无需对高于非弹性...

    标量衍射理论的计算机模拟

    标量衍射理论的计算机模拟,matlab,模拟衍射

Global site tag (gtag.js) - Google Analytics