Perl小推车生信猿生信相关

perl学习-day3-Perl 变量、标量、 数组

2019-11-01  本文已影响0人  下午三点的闲暇

一、变量

变量是存储在内存中的数据,创建一个变量即会在内存上开辟一个空间。
perl的基本数据类型

1.1 标量

标量 $ 开始,是一个单一的数据单元,可以是整数、浮点数、字符、字符串、段落等。

1.1.1 字符串标量

注意单引号和双引号的使用区别,双引号可以引入变量,输出变量代表的值,单引号直接输出$var(字符串),单引号直接原样输出所有内容,包括换行符
字符串之间连接用 “ . " ,字符串与数字之间连接也是用 " . "
实例

$var = "字符串标量 - 菜鸟教程!";
$quote = '我在单引号内 - $var';
$double = "我在双引号内 - $var";
$escape = "转义字符使用 -\tHello, World!";
print "var = $var\n";
print "quote = $quote\n";
print "double = $double\n";
print "escape = $escape\n";

执行以上程序,输出结果为:

var = 字符串标量 - 菜鸟教程!
quote = 我在单引号内 - $var
double = 我在双引号内 - 字符串标量 - 菜鸟教程!
escape = 转义字符使用 -    Hello, World!

1.1.2 特殊字符

不知道何种场合应用,不太理解,用到再来具体学习。

1.1.3 v 字符串

不知道何种场合应用,不太理解,用到再来具体学习。

1.2 数组

数组 @ 开始,用来存储一个有序的标量值的变量。

@ages = (25, 30, 40);
print "\$ages[0] = $ages[0]\n";

输出结果为

$ages[0] = 25

这里可以看出跟python中的列表类似。

1.2.1 创建数组

数组变量以@符号开始,元素放到括号内,也可以以qw/。。。/来定义数组,qw / / 里面可以包括字符串等,以空格或者换行来分割为数组
或者直接按照索引来数组赋值,跟python列表类似,也是从0开始,负数是反向读取。

1.2.2 数组大小

数组长度返回的是数组物理大小,而不是元素的个数,这个开始有点不理解,通过下面的例子进行理解
实例1

#!/uer/bin/perl 
@array = (1,2,3);
$size = @array;
$max_index = $#array;
print "数组大小:  $size\n";
print "最大索引: $max_index\n";
print "该数组为:@array\n";

执行以上程序,输出结果为:

数组大小:  3
最大索引: 2
该数组为:1 2 3

实例2

#!/uer/bin/perl 
@array = (1,2,3);
$size = @array;
$array[50] = 4;
$max_index = $#array;
print "数组大小:  $size\n";
print "最大索引: $max_index\n";
print "该数组为:@array\n";

执行以上程序,输出结果为:

数组大小:  51
最大索引: 50
该数组为:1 2 3                                                4

通过这2个例子,可以看出第1、2个实例的区别是$arrar[50]=4,数组可以跳过中间,直接定义第50个元素为4,那中间都是空,长度也会变为51,而不是4。

1.2.3 添加和删除数组元素

直接通过实例来解释

#!/usr/bin/perl
# 创建一个简单是数组
@sites = ("google","runoob","taobao");
$new_size = @sites ;
print "1. \@sites  = @sites\n"."原数组长度 :$new_size\n";
# 在数组结尾添加一个元素
$new_size = push(@sites, "baidu");
print "2. \@sites  = @sites\n"."新数组长度 :$new_size\n";
# 在数组开头添加一个元素
$new_size = unshift(@sites, "weibo");
print "3. \@sites  = @sites\n"."新数组长度 :$new_size\n";
# 删除数组末尾的元素
$new_byte = pop(@sites);
print "4. \@sites  = @sites\n"."弹出元素为 :$new_byte\n";
# 移除数组开头的元素
$new_byte = shift(@sites);
print "5. \@sites  = @sites\n"."弹出元素为 :$new_byte\n";

输出结果

1. @sites  = google runoob taobao
原数组长度 :3
2. @sites  = google runoob taobao baidu
新数组长度 :4
3. @sites  = weibo google runoob taobao baidu
新数组长度 :5
4. @sites  = weibo google runoob taobao
弹出元素为 :baidu
5. @sites  = google runoob taobao
弹出元素为 :weibo

其中需要注意的是push,unshift,左边$new_size返回的是长度,而pop和shift,左边$new_byte返回的是删除和移除的元素,而不是长度。

上一篇下一篇

猜你喜欢

热点阅读