perl學習 2 基本資料型別等

2021-06-18 08:30:15 字數 4069 閱讀 6983

所有數字格式內部一致,全部是

double

7.25e45  

== 7.25 * 1045

5.25

6.00

2+3               #2+3,

55.1-2.4          #5.1-2.4,

2.73*12             #3*12,

3614/2              #14/2,

710.2/0.3 #10.2/0.3,

3410/3              #通常是浮點除,

3.33333… …

還提供了模數運算子(%)。

10%3

的值是10

除以3

的餘數。兩個運算元首先變成它們對應的整數值,如

10.5%3.2

轉換為10%3

後再計算。

指數操作符,兩個

*號表示,如

2**3

,表示2 的3

次方,等於8

長度無限

perl 中nul 字元沒有特殊的含義。perl 能計算長度,不用靠null 來判斷字串是否結束。

有兩種型別的字串:單引號字串和雙引號字串

單引號字串中的

\n 不會被當作換行符來處理,其僅僅是兩個字元\和

n。只有在反斜線(\

)後面接的是

\或單引號

』,其才會被當作特殊符號來處理。

雙引號字串和在其它語言類似

連線符 .

重複符 x

「hello」. 「world」 #

同於「helloworld」

「hello」. 『』. 「world」#

同於「hello world」

『hello world』. 「\n」 #

同於「hello world\n」

「fred」x 3 # 「fredfredfred」

「barney」x (4+1) # 「barney」x 5, 「barneybarneybarneybarneybarney」

5 x 4 #

實際上是

「5」x 4, 「5555」

字串和數字轉換:

大多數情況下,perl 將在需要的時候自動在數字和字串之間轉換,完全依賴於標量值之間的的操作符 「

12」* 「3

」將給出36「

12fred34」* 「3

」將給出

36 //後面的非數字部分和前面的空格將被去掉 「

fred"

將給出0           //當乙個不含任何數字的字串將別轉換為0$+

標示符(

由字母,數字和下劃線組成,但不能由數字開頭)

$fred = 17; #

將17

賦給變數

$fred

$barney =『hello』; #

將五個字母的字串

『hello』

賦給$barney

$barney = $fred + 3;#

將$fred

的值加上三賦給

$barney (20)

$barney= $barney*2;#

將變數$barney 乘2

再賦給$barney (40)

$fred+=5; #

利用二元賦值操作符

$barney*=3;

$str .= 「」』; #

同上print 「hello world\n」; #

輸出hello world

,後接換行符

print 「the answer is 」;

print 6 * 7;

print 「.\n」;

print 「the answer is 」,6*7, 「.\n」;

當乙個字串由雙引號括起來時,如果變數前沒有反斜線,則變數會被其值內插,也就是說字串中的標量變數將被其值替換。

不使用雙引號也可以得到相同的結果。但使用雙引號更方便些。

在$符號之前使用\符號,變數不會被內插。

$mean = 「brontosaurus steak」;

$barney = 「fred ate a $meal」; #$barney

現在是「fred ate a brontosaurus steak」

$barney = 『fred ate a』. $meal; #

同上print 「the name is \$fred .\n」; #

列印出美圓符號

,變數不會被其值替換

變數名將是字串中有意義的最長的那乙個。

$what="brontosaurus stea";

print "fred ate $n $whats.\n";      //fred ate 3 .

print "fred ate $n $s.\n"     //fred ate 3 brontosaurus steas.

c 和perl 中都有的操作符有相同的優先順序;

對於數字的比較,

perl

提供了<, <=, = =, >=, !=

這些操作符

對於字串比較,

perl

有如下的一些有趣的字串比較符:

lt ,le ,eq ,ge, gt, ne

35 == 35.0 #true

『35』eq『35.0』 #false (

按照字串比較

)if($name gt 『fred』)else

perl 不同於其它的一些語言,它沒有boolean 型別,但是可以使用if($is_bigger)

、if(

!$is_bigger)

● 如果值為數字,0 是false;其餘為真

● 如果值為字串,則空串(『』)為false;其餘為真

● 如果值的型別既不是數字又不是字串,則將其轉換為數字或字串後再利用上述規則

while

語句可以迴圈執行其內部的一塊**直到其條件非真.

#! /usr/bin/perl -w

$num=1 ;

while($num < 10)

print "\n" ;

輸出:

1       2       3       4       5       6       7       8       9

行輸入操作符,由換行符結束(return)

#! /usr/bin/perl -w

$line = ;

if($line eq "\n")

else

結果:that was just a blank line!

使用chomp

函式去掉

\n$text = 「a line of text\n」; #

也可以由

輸入chomp($text); #

去掉換行符

(\n)。

用在列表中

chomp (@lines = ); #

讀入所有的行,不包括換行符

讀入所有的行,並去掉換行符

變數在第一次賦值前有乙個特殊值

undef

,如果使用時是「數字

」,則表現為0,

如果是「字串」,則表現為空串。

要分辨其是

undef

還是空串,可以使用

defined

函式,它將在為

undef

時返回false

,其餘返回

true

#! /usr/bin/perl

$madonna = undef;

if(!defined($madonna))

else

結果為:

madonna undef

如果想宣告自己的

undef

值,可以使用

undef

Perl 01 基本資料型別

一 perl的基本資料型別有三種 標量變數 scalar 陣列變數 array 雜湊變數 hash dict 1 標量變數 以字元 開頭,是標量變數的標記 標量變數用於儲存整數 浮點數 boolean數等數字和字串資料 它是perl的最基本的資料型別 標量變數根據上下文應用環境來確定它所存放的是數字...

Perl自學(03) 基本資料型別

之前了解到perl 是解釋型語言,因此會根據上下文自動選擇匹配型別。所以,perl 是一種弱型別語言 強型別語言就是c 一樣不指定型別會報錯。在perl 有三個基本的資料型別 標量 陣列 雜湊。標量是 perl 語言中最簡單的一種資料型別。這種資料型別的變數可以是數字,字串,浮點數,不作嚴格的區分,...

python基本資料型別(2)

字串 str 7 format 和format map 兩個都是格式化,講乙個字串中的佔位符替換為指定的值。format map 的書寫格式必須是字典型別。8 isalnum self,args,kwargs 判斷該字串是否包含數字和字母 可全部為數字,也可全部是字母 返回值是true和false。...