加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl学习总结之引用

发布时间:2020-12-16 00:32:52 所属栏目:大数据 来源:网络整理
导读:创建引用 创建规则1:在数组或者哈希前加反斜杠 ??? $aref = @array;???????? # $aref now holds a reference to @array ??? $href = %hash;????????? # $href now holds a reference to %hash ??? 当引用被储存在变量里,就可以如普通变量般使用。 创建规

创建引用
创建规则1:在数组或者哈希前加反斜杠
??? $aref = @array;???????? # $aref now holds a reference to @array
??? $href = %hash;????????? # $href now holds a reference to %hash
??? 当引用被储存在变量里,就可以如普通变量般使用。

创建规则2: [items]创建一个新的匿名数组,且返回一个指向数组的引用。{items}创建一个新的匿名哈希,且返回一个指向哈希的引用。?
??? $aref = [ 1,"foo",undef,13 ];?
??? # $aref now holds a reference to an array

??? $href = { APR => 4,AUG => 8 };??
??? # $href now holds a reference to a hash
规则1,规则2的比较:
??????? # This:
??????? $aref = [ 1,2,3 ];

??????? # Does the same as this:
??????? @array = (1,3);
??????? $aref = @array;

使用引用

使用规则 1
?使用引用的时候,你可以将变量放到大括号里,来代替数组. eg:@{$aref} instead of @array
??????? @a????????????? @{$aref}?????????????????????? An array
??????? reverse @a????? reverse @{$aref}??????? Reverse the array
??????? $a[3]?????????? ${$aref}[3]????????????????????? An element of the array
??????? $a[3] = 17;???? ${$aref}[3] = 17?????????? Assigning an element

??????? %h????????????? %{$href}???????????????? ? A hash
??????? keys %h???????? keys %{$href}???????? Get the keys from the hash
??????? $h{'red'}?????? ${$href}{'red'}?????????? An element of the hash
??????? $h{'red'} = 17? ${$href}{'red'} =???? 17? Assigning an element


使用规则 2
? 规则1的写法比较难于阅读,所以,们可以用简写的形式,来方便的阅读引用。
???? ${$aref}[3]?? $aref->[3]
???? ${$href}{red}?? $href->{red}
???? 以上两种写法表达的是相同的内容

箭头规则 ??????? @a = ( [1,3],??????????????????? [4,5,6],????????????? ? ? ? [7,8,9] ????????????????? ); ??????? $a[1] 包含一个匿名数组,列表为(4,5,6),它同时也是一个引用,使用规则2,我们可以这样写:$a[1]->[2] 值为6 ;类似的,$a[1]->[2]的值为2,这样,看起来像是一个二维数组。? 使用箭头规则,还可以写的更加简单: ?????? Instead of $a[1]->[2],we can write $a[1][2] ?????? Instead of $a[0]->[1] = 23,we can write $a[0][1] = 23? 这样,看起来就像是真正的二维数据了。 ?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读