perl-标量数据

1.标量解释:
     Perl一般用标量(scalar)来称呼单个事务。
     标量PERL里最简单的一种数据类型。

     1.1.数字
         所有数字的内部格式都相同。在PERL内部,则总是按"双精度浮点数(Double-precision floating-point)"的要求来保存数字进行运算。也就说PERL内部不存在整数值-----程序中用到整型常量会被转换成等效的浮点数值。


     1.2.浮点直接量
         直接量(literal)是指某个数字在PERL源代码中的写法。直接量并非运算结果,也不是I/O的操作,它只是直接保存在代码中的数据。

         1.25
         255.00
         -65E24


     1.3.整数直接量
         0
         2001
         -40

     1.4.非十进制的整数直接量

        八进制(octal)直接量以0开头
        十六进制(hexadecimal)直接量以0x开头
        二进制(BINARY)直接量以0b开头

        0377 #octal
        0xff  #hexadecimal
        0b11111111 #binary

2.数字操作符
   perl提供了各种数字运算符:
      减法(-)
      加法(+)
      乘法(*)
      除法(/)
      取余(%)
      ....


 3.字符串
    字符串就是一个字符串,比如HELLO。
    字符可以是任何字符任意长度的组合而成。最短的字符串可以不包含不任何字符,所以也叫空字符串,
    最长的字符串是没有长度限制,它甚至可以填满内存。


    hello
    i love you

4.单引号内的字符串直接量
   单引号内的字符串量(single-quoted string literal)指的是一对单号('')圈起的一串字符。

   单引号直量不支持变量内插,例:'$var'; #输出的结果是$var

   'fred'
   'barney'
   'hello\n'; #输出结果是hello\n


5.双引号内的字符串直接量
   双引号内的字符串直接量同样也是字符串序列,只不过是换成的双引号("")表示首尾。

   "hello"
   "I love you"

   5.1.双引号内字符串的反斜线转义

     \n    换行
     \r    回车
     \t    水平制表
     \f    换页符
     \b    退格
     \a    系统响铃声
     \e    ESC(ASCII编码转义)
     \007  octal表示的ASCII值
     \x7f  hexadicimal表示的ASCII值
     \cC   控制符,也就是Control键的代码点(CTRL+C)
     \\    反斜线转义
     \     双引号 
     \l    将下个字母换成小写
     \L    将它后面所有的字母都转换成小写,直到遇到\E为止
     \u    将下字母转换成大写 
     \U    将它后面所有的字母都转换成大写,直到遇到\E为止

6.字符串操符
   连接操作字符(.)是将两个分开的字符连接起来

   "hello" . "world";  # 等同于"helloworld"
   "hello".' '."world" # 等同于"hello world";


   重复操作符(x)

   "fred" x 3  #result is fredfredfred
   "test" x (4+1); #result is "testtesttesttesttest";

7.数字与字符串之间的自动转换
   perl是怎样进行数字与字符串之间的转换自动转换?
      这完全取决于操作符。如果操作符(+)需要的是数字,PERL就会视为数字;
      在操作符(比如.)需要字符串时,PERL便会将操作符视为字符串。

      对数字进行运算的作符(比如乘法) 如果遇到字符串类型的操作数,PERL会自动将字符串转换成等效的
      十进制浮点数进行运算。因此"12"*"3"的结果会是36. 字符串中非数字部分(以及前置的空白符号)会被
      略过,所以"12fred34" * "3"也会得出36;


-1---------------------------------------------------------------------------------------------------------
标量变量:
    所谓变量(VARIABLE)就是存储一个或多个值的容器名称。
    而标量变量,就是单单存储一个值的变量。
    标量变量名称以美元符号开头,这个符号也称为魔符(sigil),
    Perl标识符:由一个字母或下划线开头,后接多个字母,数字或下划线。
    标识符区分大小写的:$fred and $FRED是两个不同的变量。

    $test;
    $TEST;
    $Test;


    Perl通过标识符来判断该变量的意图。$的确切意思是"取单个东西"或者"取标量"



  标量的赋值:
     是指将某个值存储到变量中。
     Perl赋值符号为等号(=).

     $fred = 17;
     $test = 'hello';

  双目赋值操作符:

    $fred = $fred +5; 
    $fred +=5; #使用双目操作符

    $barney = $barney * 3;
    $barney *=3; #使用双目操作符


  print输出结果:
    print操作符就是用来输出信息:它可以接受标量值作为参数,然后不经修饰地将它输出到标准输出(standard output).

-1---------------------------------------------------------------------------------------------------------



-2--------------------------------------------------------------------------------------------------------
  操作符优先级与结合性

      结合性           操作符
      左               括号;给定参数的列表的操作符
      -----------------------------------------------
      左               ->
                       ++ --(自增,自减)
      -----------------------------------------------
      右               **
      -----------------------------------------------
      右              \ ! ~ + -(单目操作符)
      -----------------------------------------------
      左              =~ !~
      -----------------------------------------------
      左              * / % x
      -----------------------------------------------
      左              + - .(双目操作符)          
      -----------------------------------------------"<< ,>>" #引号是没有的,这里是我刻意加的
                      具名的单目操作符(-X文件测试;rand)
                      < <= > >= lt le gt ge("不相等"操作符)
                      == != <=> eq ne cmp("不相等"操作符)
      -----------------------------------------------
      左              &
      -----------------------------------------------
      左              | ^
      -----------------------------------------------
      左              &&
      -----------------------------------------------
      左              ||
                      .. ....
      -----------------------------------------------
      右             ?:(三目操作符)
      -----------------------------------------------
      右             = += -= .=
      -----------------------------------------------
      左             , =>
                     列表操作符(向右结合)
      -----------------------------------------------not
      -----------------------------------------------and
      -----------------------------------------------or xor
      -----------------------------------------------



-2--------------------------------------------------------------------------------------------------------


-3--------------------------------------------------------------------------------------------------------
  比较操作符:
     数值与字符串的比较操作符
     比较符                   数字                  字符串
     --------------------------------------------------------
     相等                     ==                    eq
     --------------------------------------------------------
     不等                     !=                    ne
     --------------------------------------------------------
     小于                     <                     lt
     --------------------------------------------------------
     大于                     >                     gt
     --------------------------------------------------------
     小于等于                 <=                    le
     --------------------------------------------------------
     大于等于                 >=                     ge
     --------------------------------------------------------

-3--------------------------------------------------------------------------------------------------------


-4--------------------------------------------------------------------------------------------------------
   获取用户输入:
      最简单的方法就是使用"行输入"操作符<STDIN>.

      只需要把<STDIN>放在程序中希望返回标量值的位置上。Perl就会从标准输入(standard inout)读取一行文本(直到
        换行为止)。

      $test = <STDIN>;
      if($test eq "\n")
      {
         print "That was just a blank line!\n";
      }
      else
      {
         print "That line of input was: $test\n";
      }


-4--------------------------------------------------------------------------------------------------------

-5--------------------------------------------------------------------------------------------------------
   chomp操作符:
       chomp作用:只能作用于单个变量,且该变量的内容必须为字符串,如果该字符串末尾是换行,chomp()的任务就是
       把它去掉。

       $test= "a line fo test\n";
       chomp($test); #去除末尾的换行符。
-5--------------------------------------------------------------------------------------------------------

-6--------------------------------------------------------------------------------------------------------
   undef值:
      在首次赋值前,变量的初始值就是特殊的undef(未定义)值,它在perl里的意思仅仅是:这里空无一物---走开,走开。
    如果你把这个"空无一物"当成数字使用,它就会表现得零;
    如果你把它当成字符串使用,它就会表现得像空字符串.
    undef既不是字符串也不是数字,它是另一种类型的标量值。

    #累加计数
    $n=1;
    while($n < 10)
    {
        $sum +=$n;
        $n +=2;
    }
    print "Total was $sum.\n";
-6--------------------------------------------------------------------------------------------------------


-7--------------------------------------------------------------------------------------------------------
  defined函数:
     行输入操作符<STDIN>有时会返回undef。在一般情况下,它会返回一行文本。但若没有更多输入,比如读到文件结尾
     (end_of_file)时,它就会返回undef来表示这个状况.
     如果要想判断某个字符串是否是undef而不是空字符串,就可以使用defined;
     如果是undef,该函数会返回假,否则为真。

     $test =<STDIN>;
     if(defined($test))
     {
        print "The input was $test\n";
     }
     else
     {
        print "No input avaible\n";
     }
-7--------------------------------------------------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值