博客
关于我
Perl基础学习02之数组和哈希
阅读量:391 次
发布时间:2019-03-05

本文共 2295 字,大约阅读时间需要 7 分钟。

目录

#数组定义

#数组元素连接

#数组长度,方法一

#数组长度,方法二

#遍历数组,方法一

#遍历数组,方法二

#数组末尾增加元素:push

#数组末尾删除元素:pop

#数组开头增加元素:unshift

#数组开头删除元素:shift

#颠倒数组元素顺序:reverse

#数组元素排序,sort,不会修改原数组

#从小到大排序

#数字从小到大排序,<=>两端传入数字

#按字符长度排序,长度相同时按数字大小排序

#可以自定义排序规则函数,sort sub_fun @array1

#哈希定义

#调用哈希元素

#新增或更改某个键值对

#返回哈希所有键,返回哈希所有值

#遍历哈希键值对

#判断哈希是否存在某个键


数组( Arrays)

以@开头,类似python中列表(list),例如数组array1表示为@array1。

例如, array1.pl

#!/usr/bin/perluse strict;use warnings;my $out="test";#数组定义my @array1=(1,"apple",$out);#一个列表中可储存不同类型的数据,可引用外部变量print "#数组元素调用\n";print "$array1[0]\n";#以"$"开头,并带上数组下标索引#数组元素连接my $array1_join=join("\t", @array1);print "$array1_join\n";#数组长度,方法一my $len_array1=$#array1+1;#$#array1为数组最大索引值print "$len_array1\n";#数组长度,方法二my $len_array2= scalar @array1;print "$len_array2\n";#遍历数组,方法一foreach (@array1){        print "$_\n";}#遍历数组,方法二foreach (0..$#array1){        print "$array1[$_]\n";}#数组末尾增加元素:pushmy $array_push="coco";push (@array1,$array_push);print "@array1\n";#数组末尾删除元素:popmy $pop_v=pop @array1;print "$pop_v\n";print "@array1\n";#数组开头增加元素:unshiftmy $array_unshift="rose";unshift (@array1,$array_unshift);print "@array1\n";#数组开头删除元素:shiftmy $shift_v=shift @array1;print "$shift_v\n";print "@array1\n";#颠倒数组元素顺序:reversemy @array2=reverse @array1;print "@array1\n";#reverse不会修改原数组print "@array2\n";#reverse只会修改返回值#数组元素排序,sort,不会修改原数组my @array3=sort @array1;#默认按照ASCII顺序,从小到大排序my @array4=sort { $b cmp $a } @array1;#按照ASCII顺序从小到大排序my @array5=sort { $a <=> $b } (1, 2, 3, 4); #数字从小到大排序,<=>两端传入数字my @array6=sort { length($b)<=>length($a)} (1, 5, 11, 14); #按字符长度排序,长度相同时按数字大小排序# 可以自定义排序规则函数,sort sub_fun @array1;print "@array1\n";print "@array3\n";print "@array4\n";print "@array5\n";print "@array6\n";

哈希(Hash)

以%开头,例如哈希hash1表示为%hash1,类似python中字典(dict),以键(key)值(value)对存储数据,哈希重要使用规则:

  1. key必须唯一;
  2. 键值对在哈希中无顺序存放;

例如,hash1.pl

#!/usr/bin/perluse strict;use warnings;#哈希定义my %hash1=("chr13"=>"T13","chr18"=>"T18","chr21"=>"T21");#调用哈希元素print "$hash1{'chr13'}\n";#新增或更改某个键值对$hash1{'chr13'}="chr13+";print "$hash1{'chr13'}\n"; #更改$hash1{'chr16'}="T16";print "$hash1{'chr16'}\n";#新增#返回哈希所有键,返回哈希所有值my @k=keys %hash1;#keys函数取出所有键存入数组@kmy @v=values %hash1;#values函数取出所有键存入数组@vprint "@k\n";print "@v\n";#遍历哈希键值对my($k1,$v1);while(($k1,$v1)=each %hash1){        print "$k1=>$v1\n";}#判断哈希是否存在某个键print "Exists\n" if exists $hash1{'chr13'};

 

转载地址:http://dbmwz.baihongyu.com/

你可能感兴趣的文章
Mysql 数据类型一日期
查看>>
MySQL 数据类型和属性
查看>>
mysql 敲错命令 想取消怎么办?
查看>>
Mysql 整形列的字节与存储范围
查看>>
mysql 断电数据损坏,无法启动
查看>>
MySQL 日期时间类型的选择
查看>>
Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)
查看>>
MySQL 是如何加锁的?
查看>>
MySQL 是怎样运行的 - InnoDB数据页结构
查看>>
mysql 更新子表_mysql 在update中实现子查询的方式
查看>>
MySQL 有什么优点?
查看>>
mysql 权限整理记录
查看>>
mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
查看>>
MYSQL 查看最大连接数和修改最大连接数
查看>>
MySQL 查看有哪些表
查看>>
mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
查看>>
MySql 查询以逗号分隔的字符串的方法(正则)
查看>>
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
查看>>
mysql 查询数据库所有表的字段信息
查看>>
【Java基础】什么是面向对象?
查看>>