精簡扼要的Perl 課程講義(一):純量(Scalar)與陣列 ...
文章推薦指數: 80 %
Perl:1980年代誕生,直譯式語言。
print "Hello World!\n"; # 雙引號可內嵌特殊字元如: # \n Newline # \r Carriage Return # \t Tab # \f Formfeed ...
Blogger舊站
關於
Facebook
Flickr
物聯網
網站架設
程式設計
統計
素食
特價優惠
宗教
物聯網
網站架設
程式設計
統計
素食
特價優惠
宗教
精簡扼要的Perl課程講義(一):純量(Scalar)與陣列(Array)
2015/04/23
0則留言
HelloWorld!
#!/usr/bin/perl
#HelloWorld!
#Perl:1980年代誕生,直譯式語言。
print"HelloWorld!\n";
#雙引號可內嵌特殊字元如:
#\nNewline
#\rCarriageReturn
#\tTab
#\fFormfeed
#\bBackspace
#\vVerticalTab
#\aBell
#\eEscape
#\001OctalASCIIvalue(hereCtrl-A)
#\x20HexASCIIvalue(herespace)
#\cDControlcharacter(hereCtrl-D)
#\\Backslash
#\"DoubleQuote
#\lLowercasenextletter
#\LLowercaseallfollowinglettersuntil\E
#\uUppercasenextletter
#\UUppercaseallfollowinglettersuntil\E
#\ETerminate\Lor\U
print'HelloWorld!\n';#單引號則只能內嵌\\\'
#註一:在Perl中,函式可不用括號,以下兩行相等:
#print"HelloWorld!\n";
#print("HelloWorld!\n");
#
#註二:在Perl中,"abc"為三個字元,在C下,
#"abc"為三個字元加上一Null字元。
#Perl單行註解為'#'開頭
#多行註解為
=pod
此為註解
=cut
純量(Scalar)
#純量(scalar)
#(1)純量:以$開頭之變數,可儲存整數、浮點數、字串等
$val1=1;#1
$val2=0x123;#十六進位數值123
#為了使數字方便辨識,可加入_分隔,
#此變數數值為23323930
$val3=23_323_930;
$val4=-4.32e3;#科學記號
$str1="AB";#字串"AB"
$name="Bill";
print"Hello,$name\n";#雙引號可內嵌變數
print'Hello,$name\n';#單引號不行
#(2)數值與字串間的自動轉換
$a="1";#字串
$b="2";#字串
#Perl會先將$a與$b自動轉為數值再相加,傳回數值
$c=$a+$b;
$d="12abc34";
#Perl會略過$d內非數字起頭到結尾的部份,
#即$d被轉換為數值12,再經計算$e為24
$e=$d*2;
$f="abc";
#若完全不是數字的字串,會被轉換成零,
#因此結果$f被轉換為零,再經計算$g亦為0
$g=$f*2;
$a=1;#數值
#Perl會將$a轉為字串,做字串相加,$b為"string1"
$b="string".$a;
#註:'.'為字串相加運算子
#(3)在字串內安插變數
$val=12;
$str1="Ihave$valdollars.";#安插變數
$str2='Ihave'.$val.'dollars.';#字串相加
$str3="def";
#Perl有時容易誤判變數名稱
$str4="abc$str3ghijk";
#加入{}之後,可讓Perl正確判斷安插變數名稱
$str5="abc${str3}ghijk";
#(4)特殊變數$_
$_="Bill";
print;#若省略參數,預設為$_,即print$_;
#(5)chomp,chop刪除最後一個(換行)字元
$str1="helloworld.\n";
chomp($str1);#刪除最後一個換行字元,變成"helloworld."
chomp($str1);#無效果
chop($str1);#刪除最後一個字元,變成"helloworld"
chop($str1);#刪除最後一個字元,變成"helloworl"
陣列(Array)
#陣列(array)
#(1)陣列:'@'開頭,一連串的純量
@empty=();#空陣列
#一陣列內含兩元素"Bill""Mary"
@arr1=("Bill","Mary");
#@arr2=("Bill","Mary","John")
@arr2=(@arr1,"John");
#@arr3=("John","Mary","Bill")
@arr3=reverse@arr2;
#按照ASCII碼排序,@arr4=("Bill","John","Mary")
@arr4=sort@arr2;
print$arr1[1];#"Mary"
print$#arr2;#@arr2最後一個元素的index即2
print$arr2[$#arr2];#@arr2最後一個元素
print$arr2[-2];#@arr2倒數第二個元素
@arr4=("a","b","c","d","e","f");
@arr5=@arr4[2..4];#取出@arr4第三到第五個元素
($a,$b)=($b,$a);#交換$a與$b
#(2)純量與陣列語境
@array=("a","b","c");#陣列
$scalar1=@array;#Perl會傳回@array的長度
$scalar2=sort@array;#Perl會傳回undef
$scalar3=reverse@array;#Perl會傳回"cba"
$scalar4="@array";#Perl會傳回"abc"
$scalar="a";#純量
($scalar);#陣列,元素個數為一
#(3)pop,push,shift,unshift陣列處理
@arr=(0,1);
push(@arr,2);#push後,@arr=(0,1,2)
$a=pop(@arr);#pop後,@arr=(0,1),$a=2
@arr=(0,1);
unshift(@arr,2);#unshift後,@arr=(2,0,1)
$a=shift(@arr);#shift後,@arr=(0,1),$a=2
#(4)split,join
$str="It'smylife."
#以空白做分隔,將$str切成陣列,存入@arr
@arr=split//,$str;
#以"-"作分隔,將@arr連接成一個純量變數
$str2=join"-",@arr;
繼續閱讀:Perl程式設計教學
Perl
G.T.Wang
個人使用Linux經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。
LeaveaReply取消回覆
留言*
Name*
Email*
Website
搜尋
分類Arduino(5)
BeagleBoneBlack(1)
DIY(54)
Linux(317)
macOS(33)
Octave(15)
Perl(12)
R(47)
Windows(98)
WordPress(16)
個人(15)
免費(35)
兒童(30)
實用工具(85)
手機(13)
技巧(45)
有趣(99)
樹莓派(57)
物聯網(55)
玄學(11)
生活(209)
程式設計(137)
統計學(8)
網頁空間(36)
網頁開發(128)
虛擬化(7)
農業(42)
遊戲(9)
開箱(132)
雲端(4)
宗教
如何戒邪淫、遠離婚外情
戒淫寶典:《壽康寶鑑》白話有聲書
公益
家扶基金會
igiving公益網
社團法人新竹縣愛心物資集發協會
智邦公益網
台灣世界展望會
©2022G.T.Wang
延伸文章資訊
- 1Perl scalar Function - Tutorialspoint
Perl scalar Function · Description. This function forces the evaluation of EXPR to be in scalar c...
- 2scalar - Perldoc Browser
The Perl documentation is maintained by the Perl 5 Porters in the development of Perl. Please con...
- 3Perl | scalar keyword - GeeksforGeeks
scalar keyword in Perl is used to convert the expression to scalar context. This is a forceful ev...
- 4perl scalar - 極客書
perl scalar例子,scalar實例代碼- 強製計算EXPR在標量上下文中,即使它會在列表環境中正常工作。
- 5perl的内置函数scalar - 立体风- 博客园
scalar可以求数组的长度,但是,在scalar的说明里面并没有这一项。 Forces EXPR to be interpreted in scalar context and returns...