zoukankan      html  css  js  c++  java
  • 5-Perl 变量

    1.Perl 变量
    变量是存储在内存中的数据,创建一个变量即会在内存上开辟一个空间。
    解释器会根据变量的类型来决定其在内存中的存储空间,因此你可以为变量分配不同的数据类型,如整型、浮点型、字符串等。
    上一章节中我们已经为大家介绍了Perl的三个基本的数据类型:标量、数组、哈希。
    标量 $ 开始, 如$a $b 是两个标量。
    数组 @ 开始 , 如 @a @b 是两个数组。
    哈希 % 开始 , %a %b 是两个哈希。
    Perl 为每个变量类型设置了独立的命令空间,所以不同类型的变量可以使用相同的名称,你不用担心会发生冲突。例如 $foo 和 @foo 是两个不同的变量。
    2.创建变量
    变量不需要显式声明类型,在变量赋值后,解释器会自动分配匹配的类型空间。
    变量使用等号(=)来赋值。
    我们可以在程序中使用 use strict 语句让所有变量需要强制声明类型。
    等号左边为变量,右边为值,实例如下:
    $age = 25; # 整型
    $name = "abc"; # 字符串
    $salary = 1445.50; # 浮点数
    以上代码中 25, "abc" 和 1445.50 分别赋值给 $age, $name 和 $salary 变量。
    3.标量变量
    标量是一个单一的数据单元。 数据可以是整数,浮点数,字符,字符串,段落等。
    简单的说它可以是任何东西。以下是标量的简单应用:
    实例
    #!/usr/bin/perl
    $age = 25; # 整型
    $name = "abc"; # 字符串
    $salary = 1445.50; # 浮点数
    print "Age = $age ";
    print "Name = $name ";
    print "Salary = $salary ";
    4.数组变量
    数组是用于存储一个有序的标量值的变量。
    数组 @ 开始。
    要访问数组的变量,可以使用美元符号($)+变量名+[下标] 来访问,实例如下所示:
    实例
    #!/usr/bin/perl
    @ages = (25, 30, 40);
    @names = ("google", "abc", "taobao");
    print "$ages[0] = $ages[0] ";
    print "$ages[1] = $ages[1] ";
    print "$ages[2] = $ages[2] ";
    print "$names[0] = $names[0] ";
    print "$names[1] = $names[1] ";
    print "$names[2] = $names[2] ";
    程序中我们在 $ 标记前使用了转义字符 () ,这样才能输出字符 $。
    5.哈希变量
    哈希是一个 key/value 对的集合。
    哈希 % 开始。
    如果要访问哈希值,可以使用 $ +变量名+ {key} 格式来访问:
    实例
    #!/usr/bin/perl
    %data = ('google', 45, 'abc', 30, 'taobao', 40);
    print "$data{'google'} = $data{'google'} ";
    print "$data{'abc'} = $data{'abc'} ";
    print "$data{'taobao'} = $data{'taobao'} ";
    6.变量上下文
    所谓上下文:指的是表达式所在的位置。
    上下文是由等号左边的变量类型决定的,等号左边是标量,则是标量上下文,等号左边是列表,则是列表上下文。
    Perl 解释器会根据上下文来决定变量的类型。
    实例
    #!/usr/bin/perl
    @names = ('google', 'abc', 'taobao');
    @copy = @names; # 复制数组
    $size = @names; # 数组赋值给标量,返回数组元素个数
    print "名字为 : @copy ";
    print "名字数为 : $size ";
    以上程序执行输出结果为:
    名字为 : google abc taobao
    名字数为 : 3
    代码中 @names 是一个数组,它应用在了两个不同的上下文中。
    第一个将其复制给另外一个数组,所以它输出了数组的所有元素。
    第二个我们将数组赋值给一个标量,它返回了数组的元素个数。
    以下列出了多种不同的上下文:
    标量 - 赋值给一个标量变量,在标量上下文的右侧计算
    列表 - 赋值给一个数组或哈希,在列表上下文的右侧计算。
    布尔 - 布尔上下文是一个简单的表达式计算,查看是否为 true 或 false。
    Void - 这种上下文不需要关系返回什么值,一般不需要返回值。
    插值 - 这种上下文只发生在引号内。

  • 相关阅读:
    switch case 变量初始化问题
    GDB 调试 ---转 比较全的东东
    mount不是很熟悉 转载文章了解下 转自http://forum.ubuntu.org.cn/viewtopic.php?f=120&t=257333
    转 strace
    Mysql 漏洞利用(越权读取文件,实战怎么从低权限拿到root密码)[转]
    echo,die(),print(),print_r(),var_dump()的区别
    iis7.5加fck解析漏洞后台拿shell
    Php发送post请求方法
    分享PHP小马一枚,完美绕过安全狗检测。
    性能测试-Gatling(一)
  • 原文地址:https://www.cnblogs.com/BradMiller/p/11858844.html
Copyright © 2011-2022 走看看