• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Perl 的變量

    發表于:2007-06-11來源:作者:點擊數: 標簽:
    1 簡單變量 Perl 的 Hello World 是怎么寫的呢?請看下面的程序: #!/usr/bin/perl print "Hello World" 這個程序和前面 BASH 的 Hello World 程序幾乎相同,只是第一行換成了 #!/usr/bin/perl ,還有顯示的時候用的是 print,而不是 echo。有了前面 BASH 基

    1 簡單變量

    Perl 的 Hello World 是怎么寫的呢?請看下面的程序:

    #!/usr/bin/perl

    print "Hello World"

    這個程序和前面 BASH 的 Hello World 程序幾乎相同,只是第一行換成了 #!/usr/bin/perl ,還有顯示的時候用的是 print,而不是 echo。有了前面 BASH 基礎和 C 語言的基礎,許多 Perl 的知識可以很容易的就看懂和記住,下面我們就從簡單變量開始。

    簡單變量是標量,是 Perl 處理的最簡單的數據類型。標量可以是數字(如2,3或2.5e6), 也可以是字符串。Perl 中的標量變量以美元符號 "$" 和一個字母開始,后面可以跟字母、數字和下劃線,Perl 的變量區分大小寫,因此 $a 和 $A 是代表不同的變量。和 BASH 中不同的是 Perl 語言中的變量即使是在最初賦值的時候也必須在變量前面加上 "$" 符號,而且 Perl 不要求 "=" 左右必須沒有空格。

    雖然 Perl 中和 BASH 一樣,沒有變量類型的概念,我們還是可以把簡單變量分為數值型和字符串型來理解。在賦值時,如果是賦值成字符串,則需要在字符串兩邊加上雙引號(或單引號);如果是數值則就不用了,而且 Perl 中還可以接受8/16(以0開頭/以0x或0X開頭)進制的整數,還可以接受如 2.5,-6.3e5,-2.3-e6 這樣的浮點數。關于簡單變量舉例如下:

    $a=23;

    $a = "hello";

    $a = 010;(表示十進制的 8)

    $a = 0x10;

    $a = 0X10;

    和 C 語言類似,在雙引號之中可以用反斜杠表示一些特殊轉義字符,見下表:

    結 構 含 義
    \n 換行
    \r 回車
    \t 水平置表符
    \f 換頁符
    \b 退格
    \v 垂直置表符
    \a 響鈴
    \e Esc
    \007 任一八進制ASCII值(這里007表示bell)
    \x7f 任一十六進制ASCII值
    \cC 任一“控制”字符
    \\ 反斜杠
    \" 雙引號
    \l 下一字母小寫
    \L 以后所有字母小寫直到\E
    \u 下一字母大寫
    \U 以后所有字母大寫直到\E
    \E 結束\L和\U

    另外在 Perl 語言里,我們常會看到 my 這樣的變量定義,如:

    my $a = "local var";

    這表示 $a 是一個程序塊的局部變量。

    2  數組

    數組是標量數據的有序列表。數組可以含從 0 個元素大小 直到 你計算機內存可以支持的大小。數組用括號內以逗號分隔的一系列元素來表示。如:

    @a=(1,2,3,4,5)

    @a=("aka",1974,173.5)

    在 Perl 中對數組變量和前面的簡單變量的存儲是在不同的空間中,對數組的引用需要在變量前加 "@" 符號。

    數組的賦值由下面幾種用法需要注意:

    @a=(1,2,3); # 初始化一個整數數組。
    $a=@a; # 這里表示將數組 @a 的長度賦給 $a,此時 $a 和 @a 不是一個變量,他們不在一個存儲空間里,引用時不會發生混淆。
    ($a, $b, $c)=(1,2,3); # 這里表示將 1 賦給 $a;2 賦給 $b;3 賦給 $c;
    @a=("a","b","c"); # 初始化一個字符串數組。
    @b=@a; # 表示把數組 @a 拷貝一份給數組 @b,@a 與 @b 不享有共同的存儲空間,他們彼此分離。
    @c=(@a,@b); # 表示數組 @c 擁有 @a 和 @b 的所有元素,仍然是一維數組,而不是發生了嵌套。
    ($a,@b)=@a; # 表示變量 $a 等于數組 @a 的第一個元素,@b 拷貝了 @a 的剩余元素。
    @a=(); # 表示產生或清空一個數組。
    ($a)=@b; 變量 $a 等于數組 @b 的第一個元素的值。
    @b[i] 引用數組 @b 的第 i 個元素。
    $b[i] 如果 b 表示一個數組的話,其含義同上。
    $a[i,j]=[x,y] 將數組 @a 的第 i 和第 j 個元素賦值為 x 和 y。
    @a[i,j]=@a[j,i] 將數組 @a 的第 i 和第 j 個元素的值互相交換。

    3    關聯數組

    關聯數組是 Perl 語言中特有的一種數據結構,是一個功能強大的數組,他與普通數組的不同在于關聯數組不是通過整數下標來索引,而是通過“鍵值”進行索引。使用關聯數組需要在變量前面加上 "%" 號,關聯數組的格式如:

    ARRAY=(key1,value1,key2,value2,key3,value3);

    上面每個 key 都對應著一個 value。關聯數組是存在在另外一個存儲空間中,不和簡單變量以及數組相混淆。

    對關聯數組的操作有如下規則:

    1. 在關聯數組中增加、更改一對數據:ARRAY={key}=value; 在關聯數組ARRAY中加上一對 key-value,要在關聯數組名稱前加上 $ 號,而且 key 的名稱要在 {} 符號之間,最后再指定 key 所對應的 value 值。如果在這個關聯數組中已經有這個 key 了.就會更改這個 key 所對應的 value 。

    2. keys(%array) 操作符可生成由關聯數組 %array 中的所有當前關鍵字組成的列表。即返回奇數號元素(第1,3,5,7...個)的列表。

    3. values(%array) 操作符返回由關聯數組 %array 中所有當前值組成的列表,即返回偶數個列表。

    4. echo(%array) 操作符返回由 關鍵字/值對 構成的元素對列表。對同一數組再進行此操作時返回下一對值直至結束。若沒有更多的對時,echo() 返回空表。 (這在打印全部列表中很有用)

    5. 刪除一對在關聯數組中的數據:delete $ARRAY{key}; delete 是 Perl 所提供的函數,作用是刪除關聯數組中的一個 key 以及這個 key 所對應的 value。使用方法是在 delete 函數之后,指定關聯數組中要刪除的 key 名稱。

    下面是一些關聯數組操作的例子:

    %fred=(one,"aka",two,"free"); $a=$fred{one}; # $a等于"aka"

    $b=$fred{two}; # $b等于"free"

    $fred{two}="yes"; # %fred=(one,"aka",two,"yes")

    @index=keys(%fred); # @index=(one,two)

    @content=values(%fred); # @content=("aka","yes")

    ($index,$content)=echo(%fred); # 此時 $index 的值為 one,$content 的值為 "aka",再執行一次 $index 為值為 two,$name 的值為 "yes"
    @a=%fred; # 將關聯數組 fred 指定給數組 a,這時 @a=(one,"aka",two,"yes")

    %b=@a; # 將數組 a 指定給關聯數組 b,這時 %b=(one,"aka",two,"yes")

    delete $fred{one}; # 將關聯數組中 key 值為 one 的一對 key-value 刪除,這時 %fred=(two,"yes")
    %x=(); # 把 %x 關聯數組置空

    4    各種運算符號匯總

    賦值(Assignment)運算符

    算術(Arithmetic)運算符

    數值(Numeric Values)關系運算符

    字符串(String Values)關系運算符

    邏輯(Logical)運算

    其它常用的運算符

    常用的文件數據(File Test)運算符

    賦值(Assignment)運算符




    符號 范例 說明
    = $x=$y; 將$x的值指派給$y
    += $x+=$y;

    $x=$x+$y;
    將$x加$y之后再指派給$x
    -= $x-=$y;

    $x=$x-$y;
    將$x減$y之后再指派給$x
    *= $x*=$y;

    $x=$x*$y;
    將$x乘$y之后再指派給$x
    /= $x/=$y;

    $x=$x/$y;
    求出$x除以$y之后的商數,再指派給$x
    **= $x**=$y;

    $x=$x**$y;
    將$x乘上$y次方之后再指派給$x
    %= $x%=$y;

    $x=$x%$y;
    求出$x除以$y的余數以后,再指派給$x
    .= $str1.=$str2;

    $str1=$str1.$str2;
    將$str1這個字符串再加上$str2這個字符串之后,再指派給$str1這個字符串
    x= $strx=$y;

    $str=$strx$y;
    重復$str字符串$y次,并反結果指派給str這個字符串


    算術(Arithmetic)運算符
     


     
    符號 范例 說明
    + $z=$x+$y 將$x和$y相加之后,再將結果指派給$z
    - $z=$x-$y 將$x減掉$y之后,再將結果指派給$z
    * $z=$x*$y 將$x和$y相乘之后,再將結果指派給$z
    / $z=$x/$y 將$x除以$y之后,再將商數指派給$z
    % $z=$x%$y 將$x除以$y之后,再將余數指派給$z
    ** $z=$x**$y 將$x乘以$y之后,再將結果指派給$z
    ++ $x++;++$x; 如同$x=$x++1;將$x加一以后再將結果指派給$x
    -- $x--;--$x; 如同$x=$x-1;將$x減一以后再將結果指派給$x
    . $z=$x.$y; 將$x字符串和$y字符串連接之后,再將結果指派給$z


    數值(Numeric Values)關系運算符




    符號 范例 說明
    > $x>$y 如果$x大于$y,返回1的值,否則返回0
    >= $x>=$y 如果$x大于等于$y,返回1的值,否則返回0
    < $x<$y 如果$x小于$y,返回1的值,否則返回0
    <= $x<=$y 如果$x小于等于$y,返回1的值,否則返回0
    == $x==$y 如果$x等于$y,返回1的值,否則返回0
    != $x!=$y 如果$x不等于$y,返回1的值,否則返回0
    <=> $x<=>$y 如果$x大于$y,返回1的值,如果$x等于$y,否則返回0;&127;如果 $x小于$y,則返回-1的值


    字符串(String Values)關系運算符




    符號 范例 說明
    gt $str1 gt $str2 如果$str1大于$str2,返回1的值,否則返回0
    ge $str1 ge $str2 如果$str1大于等于$str2,返回1的值,否則返回0
    lt $str1 lt $str2 如果$str1小于$str2,返回1的值,否則返回0
    le $str1 le $str2 如果$str1小于等于$str2,返回1的值,否則返回0
    eq $str1 ep $str2 如果$str1等于$str2,返回1的值,否則返回0
    ne $str1 ne $str2 如果$str1不等于$str2,返回1的值,否則返回0
    cmp $str1 cmp $str2 如果$str1大于$str2,返回1的值,如果$str1等于$str2,返回0,如果$str1小于$str2,則返回-1的值
    邏輯(Logical)運算


    1) $x && $y(And)

    $x    $y    結果

    真(True) 真(True) 真(True)

    真(True) 假(False) 真(True)

    假(False) 真(True) 假(False)

    假(False) 假(False) 假(False)

    2) $x || $y(Or)

    $x    $y    結果

    真(True) 真(True) 真(True)

    真(True) 假(False) 真(True)

    假(False) 真(True) 真(True)

    假(False) 假(False) 假(False)

    3) $x(Not)

    $x    結果

    真(True) 假(False)

    假(False) 真(True)



    其它常用的運算符

    指令:..區塊運算符(Range Operator)

    說明:這個運算符是 Perl 語言中特有的運算符,是一個很實用的運算符。

    范例:

    @digits=(1..9); # 此時 @digits=(1,2,3,4,5,6,7,8,9);

    @digits=('01'..'05'); # 此時 @digits=(01,02,03,04,05);

    @char=('A'..'E'); # 此時 @char('A','B','C','D','E',);

    @total=(1..3,'A'..'B'); # 此時 @total=(1,2,3'A','B');

    指令: 條件運算符(Conditional Operator)

    說明: (判別運算式? 運算式1: 運算式2)這個語法的意義和C語言一樣:如果判別運算式的值是真(True)的話,則做運算式 1 的運算;如果判別運算式是假(False)的話,則做運算式 2 的運算。

    范例:

    $price = ($age>60)? 100:200;

    如果 $age 大于60的話,則$price等于100,否則$price等于200。



    常用的文件數據(File test)運算符




    范例 說明
    -r $file 如果 $file 是可讀取的話,返回 1
    -w $file 如果 $file 是可寫入的話,返回 1
    -x $file 如果 $file 是可執行的話,返回 1
    -e $file 如果 $file 存在的話,返回 1
    -s $file 返回 $file 的文件大小(bytes)
    -f $file 如果 $file 是正常文件的話,返回 1
    -T $file 如果 $file 是文本文件的話,返回 1
    -B $file 如果 $file 是Binary文件的話,返回 1
    -M $file 返回 $file 文件最后一次更改時間到現在的日期數



    原文轉自:http://www.kjueaiud.com

    ...
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>