Perl——数组、foreach

本文详细介绍了数组的基本定义、扩展、作为堆栈及队列的应用,并演示了如何使用push、pop、shift等方法进行元素的添加与移除。同时,还讲解了如何通过foreach循环遍历数组及其控制流程。

数组

1. 定义

@array = (....);

例如:@array = ("abc","efg","hjk");


2.扩展数组

push @array,content

@array = ("abc","efg","hjk");

print @array,"\n";

#扩展,添加一个字符串
push @array,"wse";
print @array,"\n";

#扩展,添加一组字符串
@temp = ("xcv","bnm");

push @array,@temp;
print @array,"\n";

3. 堆栈

把数组作为堆栈, 在取数据时则后进先出

push 添加数据

pop  弹出并删除最后添加进入数组的值

@array = ();

#把数组做为堆栈,取数据时则后进先出
push @array,"abc"; 
push @array,"bcd";

print $array[0],"\n"; #abc
print $array[1],"\n"; #bcd

#pop 弹出并删除最后添加进入数组的值
$p = pop @array;
print "array:",@array,"\n"; #abc
print "pop:",$p; #bcd

4. 队列

把数组做为队列,在取数据时则先进先出

push 添加数据

shift 弹出并删除最先添加进入数组的值

@array = ();

#把数组做为队列,
push @array,"abc"; 
push @array,"bcd";

print $array[0],"\n"; #abc
print $array[1],"\n"; #bcd

#shift 弹出并删除最先添加进入数组的值
$p = shift @array;
print "array:",@array,"\n"; #bcd
print "shift:",$p; #abc


foreach

1. 遍历数组

foreach $a (@array) {
	print $a,"," ;
}

2. 终断或终止循环

last : 结束循环,不再执行foreach语句块,相当于java中的break;

next : 结束一次循环,进入一次的 循环,相当于java中的continue;



### Perl 中变量、哈希和数组的用法 #### 变量声明与赋值 在Perl中,变量分为三种主要类型:标量(scalar)、数组(array)以及哈希(hash)。每种类型的变量都有特定的作用范围和用途。 - **标量**用于存储单个数值或字符串。其前缀符号为`$`。 ```perl my $number = 42; my $string = "Hello, world!"; ``` - **数组**用来保存一系列有序的元素列表。数组名之前加上`@`表示整个数组;而当引用数组内的单一成员时,则需改回使用`$`并附带索引位置[^1]。 ```perl my @numbers = (1, 2, 3); print "$numbers[0]\n"; # 输出第一个元素 ``` - **哈希表**, 或者说关联数组,在Perl里通常称为“哈希”。这是一种键/值对集合的数据结构,其中每个唯一的键对应着一个具体的值。定义哈希的时候会在名称前面加 `%`, 访问具体项则同样切换成 `$` 加上对应的键[^2]. ```perl my %person = ( name => 'Alice', age => 30, ); print "$person{name}\n"; ``` #### 创建和操作哈希 为了更好地管理和检索复杂的信息集,可以利用哈希来构建更高级别的数据模型。下面是一个简单的例子展示了怎样初始化一个包含多个字段记录的人类对象,并对其进行基本的操作: ```perl # 定义一个新的哈希 my %employee; # 添加新的键值对到已存在的哈希中 $employee{id} = 1001; $employee{position}= 'Developer'; $employee{salary} = 75_000; foreach my $key (keys %employee){ print "$key : $employee{$key}\n"; } ``` #### 获取哈希大小 要获得哈希内有多少条目,可以通过先取得所有的 keys 或 values 形成的新数组长度来进行间接测量[^3]: ```perl my %fruits = ('apple' => 1, 'banana' => 2); my $size = scalar(keys %fruits); print "Size of hash is: $size\n"; ``` #### 遍历数组和哈希 对于遍历数组而言,有两种常见的方式——通过索引来迭代或是直接取出每一个元素进行处理。而对于哈希来说,则更多地涉及到对其内部键值对的同时访问[^4]。 ##### 数组遍历方式之一: ```perl my @colors = qw(red green blue yellow orange purple pink black white gray); for(my $i=0;$i<@colors;$i++){ print "$colors[$i]\n"; } ``` ##### 使用 `each` 函数遍历哈希: ```perl while( my ($k,$v)= each(%person)){ print "$k -> $v \n"; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值