Perl语言学习笔记 6 哈希

1、哈希的键是唯一的,值可以重复!

2、访问哈希元素

$hashname{“$key”};#哈希为大括号,数组为方括号,键为字符串

$family_name{"fred"} = "firstd";#给哈希元素赋值

3、哈希键支持任意表达式

$foo = "na";

$family_name{$foo."me"};#获取$family_name{“name"}对应的值

4、访问整个哈希

%family_name

5、哈希和列表可以互相转换

%some_hash = {"peison1",35,"person2",43,"person3",56};列表转换为哈希

@arry = %some_hash;哈希转换为列表

6、哈希会对键值对进行重新排序,输出和输入的顺序可能不一样

7、哈希复制与反转

%new_hash = %old_hash;先将old_hash转换为列表,再将列表转换为new_hash

%in_hash = reverse %old_hash;键值互换,一般在哈希值唯一的时候方可进行,否则相同键的后来的值会覆盖原来的

8、胖箭头

作为逗号的另一种写法,便于区别键值对

%my_hash = (

"fred"
=> "fsas",

"fdsred"=>
"fsdsas",

"frsdesdd"=>
"fdssas",

)

末尾的逗号不可省略,两边用小括号

9、获取键值

@key = keys %hash;#返回键列表

@value = values %hash;#返回值列表,与key顺序一致

$num = keys %hash;#返回键值对的个数

10、罗列哈希的键值对

while(($key,$value) = each %hash){print "$key => $value\n";
}#each的返回结果为列表,while内布尔求值的结果为列表的元素数(2)

11、常用哈希函数

exists $hash{"dsa"};#判断是否存在dsa键

delete $hash{"dsa"};#删除指定的键及对应的值,不管是否存在该键,都不会报错,与将该键赋值为undef不同

12、可以将单个哈希值内插到双引号字符串中,"hash value is $hash{$person}";不支持整个哈希的内插

13、获取环境变量的配置等信息

通过存取%ENV实现,如:print "PATH is $ENV{PATH}";可以获得PATH的值

获取程序外设置的环境变量:$ENV{CHARACTER}

Perl语言学习笔记 6 哈希,布布扣,bubuko.com

时间: 2024-10-27 03:04:07

Perl语言学习笔记 6 哈希的相关文章

Perl语言学习笔记 15 智能匹配与give-when结构

1.智能匹配操作符 替代绑定操作符: 在哈希中查找某一个键: 比较两个数组是否完全相同: 查找列表中是否存在某个元素: 智能匹配操作符与顺序无关,~~ 左右元素可以互换 2.智能操作符优先级 3.given语句 相当于c语言的switch语句 4.given可以测试多个条件,在default前用break,否则会导致default一直执行 5.笨拙匹配(正则表达式方式) 6.多个项目的when匹配 可以在语句中间加上其他语句: Perl语言学习笔记 15 智能匹配与give-when结构,布布扣

Perl语言学习笔记 day 2

1.在Perl中,子程序名与变量名属于不同的命名空间,可以使用同一个名字分别命名子程序和变量,但不建议这样使用. 2.子程序的定义是全局的,同名的子程序后边的会覆盖掉前边的定义. 3.定义子程序 sub subProgram{ #body } 4.调用子程序 &subProgram 5.所有的子程序都有返回值,默认最后一行的运算结果为返回值. 6.子程序未定义参数时,传递的参数默认传给"@_",可以通过$_[0].$_[1].....访问: 7.在子程序中创建私有变量 my($

Perl语言学习笔记 14 字符串与排序

1.字符串内用index搜索 $where = index($words,$word); ##从words里找到首次出现word的位置,下标从0开始,查找失败则返回-1: 指定开始搜索的地方:$where = index($words,$word,10); ##从10开始往后寻找,包含10 搜索子串最后出现的位置: 限定返回的最大位置:$where = rindex($words,$word,10); ##只搜索下标为10以前的字符. 2.处理子串 substr参数:依次为:字符串.起始下标.要

Perl语言学习笔记 9 正则表达式处理文本

1.替换 s/PATTERN/REPLACE/; #返回是否替换成功的布尔值 可以使用捕获变量,如:s/(\w)/$1/ 匹配失败则不做任何处理 2.定界符 对于没有左右之分的定界符,重复三次即可,如:s///.s### 对于有左右之分的定界符,需使用两对,一对包含模式,一对包含替换字符串,这两对可以不一样,如:s{}{}.s[]{}.s<>[] 3.可选修饰符 /g可进行全局替换,替换所有匹配到的字符串,如:s/ / /g /s:使得 . 匹配所有字符 /i:大小写无关 4.绑定操作符 $f

Perl语言学习笔记 day 1

1.Perl Practical Extraction and Report Language:实用摘录与报表语言 2.多行注释 (1) =需要顶格写 = description statement; =cut (2)末尾的description需要顶格写 <<description; print "Hello,world!\n"; description 3.数字: 所有数字在Perl内都以双精度浮点数格式存储; 5**3:5*5*5: 4.字符串: 最短的字符串为空字符

Perl语言学习笔记 10 其他控制结构

1.unless控制结构 条件为假时执行,与if相反 可以附带else 2.Until控制结构 条件为假时执行,一直执行到条件为真: 3.条件修饰词 效果等同于: 类似的模式: 4.裸块控制结构 { body; body; .... } 有利于为临时变量圈定有效范围 5.elsif子句 6.自增.自减 同c语言 7.for 用法同c语言 8.for与foreach 在perl中,两者等价,优先选择纯正的foreach 9.5种循环块:for.foreach.while.until.裸块 last

Perl语言学习笔记 11 Perl模块

1.模块来源:随Perl发行版本一起打包.从CPAN下载 2.阅读模块文档:perldoc CGI 3.安装模块 makemaker方式: 指定安装目录: Module::build方式: cpan方式: 4.File::basename模块 5.仅选用模块的部分函数 导入引用列表即可 10.不引入任何函数 通过全名的方式使用: 11.File:Spec模块 12.CGI.pm 13.数据库与DBI DBI:数据库接口(Database Interface) 还需安装对应版本的数据库驱动程序DB

Perl语言学习笔记 13 目标操作

1.改变目录 chdir "/etc" or die "can't chdir to '/etc'!\n"; 省略参数会回到用户主目录,与cd效果一样: 2.文件名通配 my @all_files = glob "*"; #不包括以点号开头的文件 my @pm_files = glob "*.pm"; 一次匹配多种模式,用空格隔开:my @files = ".* *"; #可以匹配所有的文件,包括以点号开头

JavaScript--基于对象的脚本语言学习笔记(二)

第二部分:DOM编程 1.文档象模型(DOM)提供了访问结构化文档的一种方式,很多语言自己的DOM解析器. DOM解析器就是完成结构化文档和DOM树之间的转换关系. DOM解析器解析结构化文档:将磁盘上的结构化文档转换成内存中的DOM树 从DOM树输出结构化文档:将内存中的DOM树转换成磁盘上的结构化文档 2.DOM模型扩展了HTML元素,为几乎所有的HTML元素都新增了innerHTML属性,该属性代表该元素的"内容",即返回的某个元素的开始标签.结束标签之间的字符串内容(不包含其它