perl数组硬引用_Perl语言学习之数组(Arrays)
这样平凡的日子,柔软又宁静。迎日出,接晚霞,仿佛这就是生活该收敛的地方。可是,总觉得少了点什么?是奋斗么?
Perl语言中的array变量是包含任意数量元素的有序集合。数组中的每个元素都有一个非负整数的索引(index)。
Perl数组是动态的,其不需要在数组变量声明时指定内存,也不需要指定每个元素的数据类型。
Perl数组元素的值可以是标量、数组、散列、文件句柄和undef等。因此,通过在数组的元素中存储任何数据类型的引用,即可以存储任意复杂的数据结构。
Perl数组可以作为一个堆栈或队列、列表的方式来使用。
我们可以通过下述方式来声明数组。
# Declare an empty hash
my %hash;
# Declare an arraycontaining a number, a string,
# a reference to a hash and another string.
my @items = (42, 'wombat', %hash, 'hello');
我们可以将数组直接“赋值”为标量变量来获取元素数量,即数组的“长度”或“大小”。
$count =@array;
或者根据$#array来获取数组的最大索引值
$highest_index= $#array;
push和pop分别从数组的结尾压入和弹出数据。
push @array, 8;
$x = pop@array;
unshift 和shift分别从数组的开头压入和弹出数据。
unshift@array, 'y';
$x = shift @array;
也可以直接操作数组中任意位置的数据元素
$first_elem= $array[0];
( $first, $third, $fifth ) = @array[0,2,4];
使用split()函数将字符串转换为数组,如下所示:
#!/usr/bin/perl
#定义字符串
$var_test = "w3big";
$var_string = "www-w3big-com";
$var_names = "google,taobao,w3big,weibo";
#字符串转为数组
@test = split('', $var_test);
@string = split('-', $var_string);
@names = split(',', $var_names);
print"$test[3]n";
print"$string[2]n";
print "$names[3]n";
输出:
i
com
weibo
相应地,可以使用join()函数将数组拼接成字符串。
my @animals = ('dog', 'cat', 'rabbit');
print join(', ', @animals);
输出:
dog, cat, rabbit
在实际应用中,foreach循环是非常强大的数组遍历方式。
my @names = ("Foo","Bar", "Baz");
foreach my $n (@names) {
say $n;
}
输出:
Foo
Bar
Baz
当然,以上只是一些数组的基本用法,关于Perl语言中数组的操作还有更多非常实用的函数,比如sort,reverse,map等
Perl中基本数据类型和自带正则表达式的联合使用,是Perl脚本相对与其他语言进行文本处理的优势之处。
" 愿我们都能在平凡岁月里里活成理想的自己。