Intermediate perl-4.1引用简介

1.引用(对比按值传递与按引用传递)

(1) 引用是处理复杂数据结构、面向对象编程和精美子例程的基础

(2) perl的标量变量保存单个值,数组保存一个有序的标量列表,散列保存一个无需的标量集合作为值,字符串作为键.但是这三种数据类型都不适合用于表示复杂的数据关系,而引用可以。

2.场景-在多个数组上完成相同的任务

(1) 上述代码中,@required数组中是一些必须物品-救生用具,防晒霜,水壶,雨衣; skipper哈希中存放的是船长所带的物品; foreach代码检查船长是否携带了所有的必须物品;

(2) 代码中使用了map操作符将列表转成了哈希;

(3) 上面两幅图片是检查船员所携带的物品,但是这样编写代码,重复性太强,可以将代码重构,放入一个通用的子例程中.

(4) 使用子例程的改进方法如下图所示:

其中,@_数组复制了子例程的参数信息,这样的操作对于少量数据还可以接受,如果数据量非常大,这样大规模复制数据,仅仅为了传递数据到子例程显得浪费;

此外,如果想要修改原始数组,因为在子例程中有一个副本(按值传递),所以任何对于@_数组的修改将不会自动影响原始数组(引用和sv的ref类似). 

 

posted on   知北游。。  阅读(48)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示