所有數字格式內部一致,全部是
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。...