perl-1-標量

一、簡介

Perl(Practical Extraction and Report Language),是一種高級、通用、直譯式、動態(tài)的程序語言,最具代表性的為正則表達式,也稱實用報表提取語言。

二、標量數(shù)據(jù)

1.標量數(shù)據(jù)分為數(shù)字和字符串。
2. 數(shù)字
  • 所有數(shù)字的內(nèi)部結(jié)構(gòu)都一樣:整數(shù)和浮點數(shù)在Perl內(nèi)部都是以雙精度浮點數(shù)的要求來保存數(shù)據(jù)并進行運算的。
  • 直接量(代碼中直接鍵入的數(shù)據(jù))的寫法
    1.浮點數(shù)直接量:1.25; 255.000;-6.5e24
    2.整數(shù)直接量:0; 2001; -30; 23_1111_7763(可下劃線區(qū)分)
    3.非十進制的整數(shù)直接量:
o377         #八進制--255
0xff         #十六進制--255
0b11111111   #二進制--255//前置0
  • 數(shù)字操作符:
+ - * /  %(取模) **(取冪)
取模:先取整數(shù)再求余
eg: 10.5%3.2等效于10%3
2**3---2的三次方
3. 字符串
  • 字符串通常是由可輸出的字母,數(shù)字及標點符號組成。
  • 如果要看到源代碼出現(xiàn)ASCII字符范圍以外的字符,需要加以下編譯指令:
use utf8    #Unicode編碼
  • 字符串直接量
    1.單引號內(nèi)的字符直接量
    除了單引號和反斜杠字符外,單引號內(nèi)所有字符都代表他們自己,而要表示單引號或反斜杠,需要在此符號前加入反斜杠字符表示轉(zhuǎn)義。
' fred '  #共四個字符
‘ \’\\ '  #單引號和反斜杠兩個字符

2.雙引號內(nèi)的字符直接量
雙引號的反斜杠更為強大,可以轉(zhuǎn)義許多控制字符或者用八進制或十六進制寫法來表示任何字符。

" coke\tsprite "  # coke、制表符(tab)和sprite

3.雙引號內(nèi)字符串的常見反斜線轉(zhuǎn)義

組合       意義
\n         換行
\r         回車
\t         水平制表符
\f         換頁符
\b         退格

4.字符串操作符

.    #句號操作符,連接操作符
eg: "hello" . "world"     # 等同于"helloworld"
x    #字符串重復操作符
eg: "fred"x3   # "fredfredfred"
eg: 5x4.8   # "5555",先將數(shù)字5轉(zhuǎn)換成字符串"5"
且有操作數(shù)在使用前會先取整(4.8變成4)
重復次數(shù)小于1時,會生成程度為0的空字符串
3. 數(shù)字與字符串間的自動轉(zhuǎn)換

自動轉(zhuǎn)換完全取決于操作符

"12" *"3"         #36
"12fred34" * "3"  #也是36
‘o377’            #十進制377,"自動轉(zhuǎn)換總是按照十進制數(shù)字來處理"

前置0的技巧只對直接量有效,不能用于字符串的自動轉(zhuǎn)換

4. Perl內(nèi)置警告信息
法一: use warnings;        # 能夠指定代碼的作用范圍
法二: perl -w my_lab.plx    #此法對所有涉及代碼都開啟警告功能
法二也可以寫成: "#! /usr/bin/perl-w"
法三: use diagnostics
5. 標量變量
  • 變量: 儲存一個或多個值的容器的名稱。
  • 標量變量:單單存儲一個值的變量。
  • 標量變量的名稱以美元符號開頭:$,區(qū)分大小寫
  • 組成:由字母或下劃線開頭,后接多個字母數(shù)字或下劃線
$name
$Name  #兩者為不同變量
6. 賦值
$fred = $fred + 5 ;
$fred += 5 ;       #兩者等效,雙目賦值操作符
$str = $str . " "  #在str的末尾追加一個空格字符
$str .= " "        #作用同上

$barney = " fred ate a $meat " #如果meat未被賦值過,用空字符來替換
print "$barney"   #雙引號是多余的
print  $barney    #變量內(nèi)插又叫雙引號內(nèi)插
print "The name is \$barney.\n"     #會輸出$符號
print ' The name is $barney '."\n"  #效果同上 

$what = steak ;
$n  = 3 ;
print "fred ate $n $whats .\n" ;此處引用的是$whats的值,而不是what
print "fred ate $n ${what}s .\n"
7. 借助代碼點創(chuàng)建字符

鍵入一些鍵盤上沒有的那些字符,可以直接鍵入這些字符的代碼點,再通過chr()函數(shù)轉(zhuǎn)換成對應(yīng)字符。

$alef  =  chr( 0x05D0 )
$alpha = chr( hex('03B1') ) ;
$code_point = ord('?');
"$alpha$omega" 
"\x{03B1}\x{03C9}"  #如果不預先創(chuàng)建變量,也可以在雙引號內(nèi)用\x{}的形式
8.比較操作符
大于或等于:>=
小于或等于:<=
<>,=>在perl里都有別的意義。

數(shù)值與字符串的比較操作符

比較              數(shù)字                  字符串
相等               ==                    eq
不等               !=                     ne
小于               <                      1t
大于               >                      gt
小于或等于          <=                     1e
大于或等于          >=                     ge
9. 布爾值
數(shù)字:0為假,所有其他數(shù)字都為真
字符串:空字符串為假,其他字符為真
既不是字符也不是數(shù)字;先轉(zhuǎn)換成字符或數(shù)字再進行判斷
字符串'0'跟數(shù)字0是同一個標稱值 # "因為自動轉(zhuǎn)換都是以十進制進行轉(zhuǎn)換的"
10. 獲取用戶輸入

行輸入操作符<STDIN>:直到換行符為止 。

$line = <STDIN> 
chomp( $text = <STDIN> ) ;  # 讀入文字,略過最后的換行符
11. undef值

首次賦值前:變量值的初始值就是特殊的undef值,既不是數(shù)字,也不是字符串,他完全是另一種類型的標稱值。

判斷某個字符串是undef而不是空字符串
$madonna = <STDIN>
if ( defined(madonna) )

$m = undef  # 自己創(chuàng)造undef值,回到從未用過的狀態(tài)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容