當前位置:
首頁 > 知識 > Perl 變數

Perl 變數

變數是存儲在內存中的數據,創建一個變數即會在內存上開闢一個空間。

解釋器會根據變數的類型來決定其在內存中的存儲空間,因此你可以為變數分配不同的數據類型,如整型、浮點型、字元串等。

上一章節中我們已經為大家介紹了Perl的三個基本的數據類型:標量、數組、哈希。

  • 標量 $ 開始, 如$a $b 是兩個標量。

  • 數組 @ 開始 , 如 @a @b 是兩個數組。

  • 哈希 % 開始 , %a %b 是兩個哈希。

Perl 為每個變數類型設置了獨立的命令空間,所以不同類型的變數可以使用相同的名稱,你不用擔心會發生衝突。例如 $foo 和 @foo 是兩個不同的變數。



創建變數

變數不需要顯式聲明類型,在變數賦值後,解釋器會自動分配匹配的類型空間。

變數使用等號(=)來賦值。


我們可以在程序中使用 use strict 語句讓所有變數需要強制聲明類型。

等號左邊為變數,右邊為值,實例如下:

$age = 25; # 整型$name = "runoob"; # 字元串$salary = 1445.50; # 浮點數

以上代碼中 25, "runoob" 和 1445.50 分別賦值給 $age, $name 和 $salary 變數。

接下來我們會看到數組和哈希的使用。



標量變數

標量是一個單一的數據單元。 數據可以是整數,浮點數,字元,字元串,段落等。簡單的說它可以是任何東西。以下是標量的簡單應用:

實例

#!/usr/bin/perl$age = 25; # 整型$name = "runoob"; # 字元串$salary = 1445.50; # 浮點數print"Age = $age
";print"Name = $name
";print"Salary = $salary
";

以上程序執行輸出結果為:

Age = 25Name = runoobSalary = 1445.5


Perl 變數

數組變數

數組是用於存儲一個有序的標量值的變數。

數組 @ 開始。

要訪問數組的變數,可以使用美元符號($)+變數名,並指定下標來訪問,實例如下所示:

實例

#!/usr/bin/perl@ages = (25, 30, 40);
@names = ("google", "runoob", "taobao");
print"$ages[0] = $ages[0]
";print"$ages[1] = $ages[1]
";print"$ages[2] = $ages[2]
";print"$names[0] = $names[0]
";print"$names[1] = $names[1]
";print"$names[2] = $names[2]
";

以上程序執行輸出結果為:

$ages[0] = 25$ages[1] = 30$ages[2] = 40$names[0] = google
$names[1] = runoob
$names[2] = taobao

程序中我們在 $ 標記前使用了轉義字元 () ,這樣才能輸出字元 $。



哈希變數

哈希是一個 key/value 對的集合。

哈希 % 開始。

如果要訪問哈希值,可以使用 $ + {key} 格式來訪問:

實例

#!/usr/bin/perl%data = ("google", 45, "runoob", 30, "taobao", 40);
print"$data{"google"} = $data{"google"}
";print"$data{"runoob"} = $data{"runoob"}
";print"$data{"taobao"} = $data{"taobao"}
";

以上程序執行輸出結果為:

$data{"google"} = 45$data{"runoob"} = 30$data{"taobao"} = 40


變數上下文

所謂上下文:指的是表達式所在的位置。

上下文是由等號左邊的變數類型決定的,等號左邊是標量,則是標量上下文,等號左邊是列表,則是列表上下文。

Perl 解釋器會根據上下文來決定變數的類型。實例如下:

實例

#!/usr/bin/perl@names = ("google", "runoob", "taobao");
@copy = @names; # 複製數組$size = @names; # 數組賦值給標量,返回數組元素個數print"名字為 : @copy
";print"名字數為 : $size
";

以上程序執行輸出結果為:

名字為 : google runoob taobao名字數為 : 3

代碼中 @names 是一個數組,它應用在了兩個不同的上下文中。第一個將其複製給另外一個數組,所以它輸出了數組的所有元素。第二個我們將數組賦值給一個標量,它返回了數組的元素個數。

以下列出了多種不同的上下文:


序號 上下文及描述
1 標量 ?賦值給一個標量變數,在標量上下文的右側計算
2 列表 ?賦值給一個數組或哈希,在列表上下文的右側計算。
3 布爾 ?布爾上下文是一個簡單的表達式計算,查看是否為 true 或 false。
4 Void ?這種上下文不需要關係返回什麼值,一般不需要返回值。
5 插值 ?這種上下文只發生在引號內。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

jQuery UI 實例-選擇(Selectable)
Docker 安裝 Python

TAG:程序員小新人學習 |