美文网首页Perl小推车生信猿生信相关
perl学习-day3-Perl 变量、标量、 数组

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

作者: 下午三点的闲暇 | 来源:发表于2019-11-01 16:31 被阅读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返回的是删除和移除的元素,而不是长度。

    相关文章

      网友评论

        本文标题:perl学习-day3-Perl 变量、标量、 数组

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