网站首页 > 教程分享 正文
在Perl中, 有很多方法来创建一个引用, 这里只介绍基础的方式。
最常用的方法是通过反斜杠操作符:
$numref = \$num;
$constref = \3.1415;
$arrayref = \@arr;
$hashref = \%hash;
$subref = \&subname;
$fhref = \*STDOUT;
匿名数据构造引用:
我们在构造数组的引用时, 可以直接使用中括号来构造引用:
$arrayref = [1,3,5];
这和下面的代码是等效的:
@arr = (1,3,5);
$arrayref = \@arr;
同样的, 在构造散列引用时, 我们可以使用花括号:
$hashref = {
name => 'easyperl',
age => 1,
};
那么我们怎么使用这些引用呢, 怎么获取里面的值呢?
我们在使用引用指向的值时, 需要对引用进行解引用:
具体我们通过例子来看:
my $num = 3;
my $arrayref = [1, 2, 3];
my $hashref = {
name => 'easyperl',
age => 1,
};
我们只需要在引用前加上其原来数据类型的修饰符就可以解引用了:
$numref 现在就是$numref所引用的值:
print $numref;
同样的@$arrayref , %$hashref 就是相关引用指向的数组和散列:
print $arrayref[1];
print $hashref{name};
上面的方式$比较多, 当引用嵌套多次时, 可能会出现这样的解引用:
$$arrayref[1][2][3]
$$hashref{name}{subname}{subsubname}
这样代码可读性会很差,同时引用修饰符过多, 特别容易出错, 因此我们还可以写成这样:
$arrayref->[1]->[2]->[3]
$hashref{name}->{subname}->{subsubname}
使用箭头符号->可以避免这么多的修饰符, 同时解引用的层次也很清晰, 因此大部分情况下都是推荐尽量使用这种方式来解引用。
猜你喜欢
- 2024-10-27 前端教程:JavaScript对象(js对象的操作方法)
- 2024-10-27 在UnRaid系统的DASHBOARD中显示CPU和主板的温度
- 2024-10-27 为什么我十分喜欢C,却很不喜欢C++
- 2024-10-27 想赚高薪?看了这些编程语言的入门方法,学习和玩一样轻松
- 2024-10-27 《Python核心编程》(第2版)第2章 快速入门
- 2024-10-27 程序员5种编程入门方法(程序员5种编程入门方法图解)
- 2024-10-27 你不可能还不会python变量的类型吧?
- 2024-10-27 Perl模式匹配大型连载3——s替换操作
- 2024-10-27 Cobalt Strike 4.8 用户指南-第五节-获取初始访问
- 2024-10-27 「实战」助力数据库开发之接口篇 - Perl 连接 Greenplum
你 发表评论:
欢迎- 最近发表
-
- 有了这份900多页的Android面试指南,你离大厂Offer还远吗?
- K2 Blackpearl 流程平台总体功能介绍:常规流程功能
- 零基础安卓开发起步(一)(安卓开发入门视频)
- 教程:让你的安卓像Windows一样实现程序窗口化运行
- Android事件总线还能怎么玩?(事件总线有什么好处)
- Android 面试被问“谈谈架构”,到底要怎样回答才好?
- Android开发工具Parcel和Serialize
- Android 中Notification的运用(notification widget安卓)
- Android退出所有Activity最优雅的方式
- MT管理器-简单实战-去除启动页(mt管理器怎么去除软件弹窗)
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)