美文网首页
[perl学习笔记]数组

[perl学习笔记]数组

作者: Silver_42ac | 来源:发表于2020-01-11 13:02 被阅读0次

内容稍多,分两次学习,1-4一次,5-8一次

数组一个是存储标量值的无序列表变量。
数组变量以 @ 开头。访问数组元素使用 $ + 变量名称 + [索引值] 格式来读取

#!/usr/bin/perl

@hits = (25, 30, 40);    #创建数组
@names = ("google", "edualiyun", "taobao");   #创建数组
print "\$hits[0] = $hits[0]\n";        #\$  斜杠 \起了反转义 的作用,让变量符号 $ 变成了 普通字符串
print "\$hits[1] = $hits[1]\n";
print "\$hits[2] = $hits[2]\n";
print "\$names[0] = $names[0]\n";
print "\$names[1] = $names[1]\n";
print "\$names[2] = $names[2]\n";
image.png

1、创建数组
数组变量以 @ 符号开始,元素放在括号内,也可以以 qw 开始定义数组。

@array = (1, 2, 'Hello');
@array = qw/这是 一个 数组/;

使用 qw// 运算符,就是等同于@array = (1, 2, 'Hello'); 而且还可以换行

@days = qw/1, 2, 'Hello'
 /;

2、按索引来给数组赋值(或者说修改已有内容)

@array=qw/‘Monday’,‘’,‘’,‘’,‘’,‘’,‘Sunday’/
$array[0] = 'Monday';
$array[6] = 'Sunday';

3、访问数组元素
访问数组元素使用 $ + 变量名称 + [索引值] 格式来读取

@sites = qw/google taobao edualiyun/;
print "$sites[0]\n";
print "$sites[1]\n";
print "$sites[2]\n";
print "$sites[-1]\n";     # 负数,反向读取

数组索引值从 0 开始,即 0 为第一个元素,1 为第二个元素,以此类推。

负数从反向开始读取,-1 为第一个元素, -2 为第二个元素


image.png

4、获取或者生成连续的数组元素,返回依然是数组
(1)生成连续的数组元素

#!/usr/bin/perl

@var_10 = (1..10);
@var_20 = (10..20);
@var_abc = (a..z);
print "@var_10\n";   # 输出 1 到 10
print "@var_20\n";   # 输出 10 到 20
print "@var_abc\n";  # 输出 a 到 z

(2)获取连续的数组元素,用法为切片的一种

print "@var_10[3..5]\n";
print "@var_10[6,7,8]\n";
print "@var_20[4..6]\n";
print "@var_abc[3..15]\n";
image.png

5、数组大小
数组大小由数组中的标量上下文决定;上下文,其实就是前后是对哪类变量的操作,是哪类变量的操作,变量自动变成相应的变量类型,而不用像python 一样 str() int() 等操作

如果上下文不是数组的操作,比如是数字操作,则是返回元素个数

#!/uer/bin/perl

@array = (1,2,3);
print "数组大小: ",0+@array,"\n";    #这里是与数字相加,@array自动转化为数字,数字就是元素个数
print "数组大小: ",$#array+1,"\n";
#    $#array  表示数组最后有一个索引的数字 


@array = (1,2,3);
$array[50] = 4;
$size = @array;
$max_index = $#array;
print "数组大小:  $size\n";
print "最大索引: $max_index\n";
image.png

6、添加和删除数组元素

image.png
#!/usr/bin/perl
# 创建一个简单是数组
@sites = ("google","edualiyun","taobao");
print "1. \@sites  = @sites\n";

# 在数组结尾添加一个元素
push(@sites, "baidu");
print "2. \@sites  = @sites\n";
# 在数组开头添加一个元素
unshift(@sites, "weibo");
print "3. \@sites  = @sites\n";
# 删除数组末尾的元素pop(@sites);
print "4. \@sites  = @sites\n";
# 移除数组开头的元素
shift(@sites);
print "5. \@sites  = @sites\n";
image.png

这里可能不好理解。请看附图,就能明白函数作用(很久以前的笔记,字不好,见谅)

image.png

7、将字符串转换为数组

#!/usr/bin/perl

# 定义字符串
$var_test = "edualiyun";
$var_string = "www-edualiyun-com";
$var_names = "google,taobao,edualiyun,weibo";
# 字符串转为数组
@test = split('', $var_test);
@string = split('-', $var_string);
@names  = split(',', $var_names);
print "$test[3]\n";  # 输出 com
print "$string[2]\n";  # 输出 com
print "$names[3]\n";   # 输出 weibo
image.png

8、数组转换为字符串

#!/usr/bin/perl
# 定义字符串
$var_string = "www-edualiyun-com";
$var_names = "google,taobao,edualiyun,weibo";


# 字符串转为数组
@string = split('-', $var_string);
@names  = split(',', $var_names);
print "@string\n";
print "@names\n";

print "#"x20;
print "\n";


# 数组转为字符串
$string1 = join( '-', @string );
$string2 = join( ',', @names );

print "$string1\n";
print "$string2\n";
image.png

相关文章

  • [perl学习笔记]数组

    内容稍多,分两次学习,1-4一次,5-8一次 数组一个是存储标量值的无序列表变量。数组变量以 @ 开头。访问数组元...

  • Perl基础系列合集

    ​Perl学习01之标量数据 Perl学习02数组和哈希使用 Perl学习03之流程控制结构 Perl学习04之I...

  • Learning Perl 学习笔记 数组

    数组的索引:从0开始, #name + 1) -1 也表示数组的最后一个索引,所以 #name] == $name...

  • Perl学习笔记2——列表与数组

    列表和数组的概念与性质 列表是Perl中的第二种数据结构,是一组标量的有序集合。数组是存储列表的容器,是一种可以存...

  • Perl学习02数组和哈希使用

    实例介绍Perl中数组和哈希的使用。首发于本人公众号:pythonic生物人 更好的阅读体验请戳: Perl学习0...

  • perl学习笔记

    查询,安装模块 安装Date::Calc 安装Unix::Sysexits FindBinperl 中的 pwd ...

  • Perl数组

    数组变量以@开头,访问数组变量需要使用$+变量名称+索引值。 实例: 数组创建方式以@变量开头。使用qw定义数组。...

  • Perl 数组

    Perl 数组一个是存储标量值的列表变量,变量可以是不同类型。数组变量以 @ 开头。 创建数组 添加或删除数组元素...

  • perl学习-day3-Perl 数组、哈希

    1.2 数组 1.2.4 切割数组 跟python 的列表一致,指定有效的索引值切割,可以用逗号分割,如果是连续的...

  • 【Python_perl】列表_数组求并集,交集,补集

    为了方便对应这里给出perl python 对应关系 python,perl数据结构关系:数组(array) ...

网友评论

      本文标题:[perl学习笔记]数组

      本文链接:https://www.haomeiwen.com/subject/uuvdactx.html