一、perl的基本資料型別有三種:標量變數(scalar)、陣列變數(array)、雜湊變數(hash/dict);
1、標量變數:以字元"$"開頭,$是標量變數的標記;標量變數用於儲存整數、浮點數、boolean數等數字和字串資料;它是perl的最基本的資料型別;標量變數根據上下文應用環境來確定它所存放的是數字或字串資料;
如:$a = 123;
$b = 3.1415926;
$c = "perl";
2 、陣列變數:以字元"@"開頭,@是陣列變數的標記;陣列變數是存放一系列標量資料、陣列變數、雜湊變數、常量,等的容器;其中的元素即可以是常量,也可以是標量,還可以是另外的陣列,更可是雜湊變數;對陣列的訪問是通過下標索引來實現的;跟c語言中訪問陣列的方法一致;下標索引是使用一對中括號""包圍起來的;最大的陣列可以佔滿整個可用記憶體,最小的陣列為空陣列"()";
如: @array = (1,2,3,"abc","def", 3.1415926, $abc, $def, @otherarray);
3、雜湊變數:以字元"%"開頭,%是雜湊變數的標記;雜湊變數使用乙個關鍵字key和乙個值vale組成的key-value對來儲存資料的,與陣列一樣,也可以通過雜湊變數的下標索引來訪問雜湊變數中的資料,不同的是,雜湊變數的索引不僅僅可以使用非負的整數作為索引,還可以使用其它資料型別作為索引,比如:可以使用字串作為訪問資料的索引(key),也可以使用另外的標量變數來訪問資料;關鍵字或下表索引是使用一對花括號"{}"包圍起來的;
如:%hash = ("a" => 1001, "b" => 1002, "c" => "perl book", 1003 => "perl word", 1004 => 1005);
二、變數的作用域:
perl的變數的作用域有以下幾種:塊級作用域、函式(子程式)級作用域、檔案級作用域、程式級作用域;
1、塊級作用域:
是在使用一對花括號包圍起來的乙個**塊範圍之內;離開這段**塊,塊內定義的變數就不再有意義;
# code .......
my $var;
my ($var1, $var2,$var3, $var4);
2、函式級作用域:是指變數的在使用sub定義的子程式的範圍之內,函式結束並返回之後,函式內定義的區域性變數就不再有意義;
sub myfunction ()
# code .......
my $var;
my ($var1, $var2,$var3, $var4);
local $variable;
local ($variable1, $variable2, $variable3, $variable4);
3、檔案級作用域:值變數的生命週期只在當前檔案範圍之內,檔案結束時,在檔案內定義的檔案級變數就不再有意義;
########### test.pl ########
#!/bin/perl -w
# code .......
my $var;
my ($var1, $var2,$var3, $var4);
local $variable;
local ($variable1, $variable2, $variable3, $variable4);
#file finish;
4、程式級作用域:也就是全域性作用域,是指變數的生命週期在整個程式中都可見,可以被訪問;perl中,不加任何修飾符限制的變數,其預設的作用域就是全域性作用域,在整個程式中都可以被訪問;
如:$var = 123; #全域性作用域的變數;
三、變數作用域修飾符:my、local
用my和local宣告變數時將給變數賦空(null)值;
用my宣告的變數,其作用域僅限於其所在的**塊,在這個**塊內有效,一旦離開了這個**快,則用my宣告的變數不再有效;用關鍵字my可以宣告單個變數,也可以宣告多個變數:
my $var;
my ($var1, $var2,$var3, $var4);
注意:使用my關鍵字宣告多個變數時,一定要用"()"把這多個變數括起來,多個變數之間用逗號分隔開;如果不用"()"括起來的話,則僅僅宣告第乙個變數為my變數(區域性變數),從第二個變數開始,剩餘的所有變數都是全域性作用域的變數;
如:my $var1, $var2,$var3, $var4;
這個語句中,$var1是my限定的區域性變數,$var2,$var3, $var4則是全域性變數;
用local宣告的變數,其作用域限於其所在的子程式,在這個子程式內有效,一旦離開了其所在的子程式,則用local宣告的變數不再有效;用關鍵字local可以宣告單個變數,也可以宣告多個變數:
local $var;
local ($var1, $var2,$var3, $var4);
注意:使用local關鍵字宣告多個變數時,一定要用"()"把這多個變數括起來,多個變數之間用逗號分隔開;如果不用"()"括起來的話,則僅僅宣告第乙個變數為local變數(區域性變數),從第二個變數開始,剩餘的所有變數都是全域性作用域的變數;
如:local $var1, $var2,$var3, $var4;
這個語句中,$var1是local限定的區域性變數,$var2,$var3, $var4則是全域性變數;
01 基本資料型別
1 什麼是資料型別?資料型別可以理解為固定記憶體大小的別名 資料型別是建立變數的模子 2 什麼是變數 變數是一段 具體 連續儲存空間的別名 程式通過變數申請並命名儲存空間 通過變數名可以使用儲存空間 3 練習 1 型別與變數的關係 include int main 輸出結果為 2 自定義型別與建立變...
Perl自學(03) 基本資料型別
之前了解到perl 是解釋型語言,因此會根據上下文自動選擇匹配型別。所以,perl 是一種弱型別語言 強型別語言就是c 一樣不指定型別會報錯。在perl 有三個基本的資料型別 標量 陣列 雜湊。標量是 perl 語言中最簡單的一種資料型別。這種資料型別的變數可以是數字,字串,浮點數,不作嚴格的區分,...
Python基本語法01 基本資料型別
2 數值型 總結python 的學習是 cv 後續學習的基礎,但與資料分析師 python 開發工程師等要求不一 相對來說,cv 更依賴 python 的相關庫,比如科學計算庫 numpy 資料分析庫 pandas 影象繪製庫 matplotlib。基本資料型別包含數值型 number 與字串 st...