8月28日 perl 学习笔记 哈希

学习 pop push 

增加新元素到数组的尾端pop 负责取出数组中最后一个元素并将其作为返回值返回

@will = 5..9

$jack = pop(@will)# $jack 变为9 

@will 变为(5,6,7,8)

push 添加一个元素到数组的末尾

shift unshift 是对数组的开头进行操作

splice 从中间插入

@will = qw(1 2 3 4);

@move = splice @will, 1, 2, qw(8);

@move = qw (2 3)

@will = qw (1 8 4)

双引号 使得数组内插使用

foreach语句可以一项一项地读数据同时我发现目前我只会$ 不能用@ 注意区分 $ 控制变量与@ $_为默认变量使用reverse逆序排列数组each 理清楚概念什么是标量上下文什么是列表上下文在标量上下文中使用产生列表的表达式在列表上下文中使用产生标量的表达式scalar 强制指定标量上下文

scalar @will列表上下文中的子程序

返回值的注意事项

sub

在子程序的执行过程中,它会不断进行运算,最后一次的结果都会被自动当成子程序的返回值。

My () 创建私有变量

My操作符不会改变变量赋值时的上下文

也可以创建私有数组

使用 use strict 编译指令

return

3 Hash Array(Associative Array):

perl hash 常见用法

基本用法

# 初始化 %h为空数组%h = {};# 用数组初始化%h为 a=>1, b=>2%h = ('a', 1, 'b', 2);# 意义同上,只是另一种更形象化的写法。%h = ('a'=>1, 'b'=>2);#如果key是字符串,可以省略引号。下面这行和上面那行是一样的%h = (a=>1, b=>2);

清空hash

undef %h

得到hash的所有键值

# 得到所有keys,顺序取决于hash函数,或者说是乱序

@all_keys = keys %h;

# 所有键值,是按hash的值从大往小排列的。值的比较是数字比较(比如说,10>9)

@all_keys = sort{$h{$b}<=>$h{$a}} (keys %h);

# 所有键值,是按hash的值从小往大排列的。值的比较是字符串比较(比如说,'10' < '9')

@all_keys = sort{$h{$a} cmp $h{$b}} (keys %h);

判断hash是否包含key

exists($h{$key});

Hash的长度

想要知道一个hash存放多少数据

$hash_size = keys %h

# 把%h的长度放到$hash_size中

print scalar keys %h, "\n"

# 打印%h的长度。这里用了scalar来返回数组长度。

遍历一个hash

while (my ($k, $v) = each %h) {print "$k ---> $v\n";}

Reference引用

Reference类似于C/C++的指针

$h_ref = \%h;

# 获得一个hash的reference%aHash = %{$h_ref};

# 把hash reference当成hash用$value = $h_ref->{akey}

# 这个和%h{akey}是一样的

传递hash到函数

一般都是传递一个reference到函数

%h = ();$h{a}=1;foo(\%h)print $h{b}, "\n";

# 打印出2。

这个值来自于函数foo() sub foo {my ($h) = @_;print $h->{a}, "\n";

# 打印出1$h->{b} = 2;}

函数返回hash,或者hash引用(hash reference)

函数可以返回hash

sub foo {my %fh;$fh{a} = 1;return %h;} my %h = foo();print

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容