在 Perl 中,大部分的字串都用雙引號 " "(Double Quote)來界定,
而在雙引號中的變數,則會被代換成變數值
$name = "jason"; # $name 的值是 "jason"
$str1 =“My first name is $name"; # $str1 的值是 "My first name is jason"
另一種作法,則是以單引號 ' '(Single Quote)來界定字串,
此時 Perl 就不會對其內的變數進行代換
$str2 = 'My first name is $name'; # $str2 的值是 "My first name is $name"
若要將字串相連,可用句點 . 符號
$str3 = "My bird is " . (2*9) . "cm long"; # $str3 的值是 "My bird is 18 cm long"
也可以用「x」運算來進行字串的重複
$str4 = "叔叔" . "是" . "壞人\n";
$str5 =$str4 x5;
print $str5;
結果:
叔叔是壞人
叔叔是壞人
叔叔是壞人
叔叔是壞人
叔叔是壞人
Perl 支援以反斜線開始的特殊字元
符號 | 說明 |
---|---|
\a | 鈴聲 |
\b | 退位鍵(Backspace) |
\e | Escape 鍵 |
\f | Formfeed |
\n | 換行(Return) |
\t | 定位鍵(Tab) |
\cJ | 控制字元,此例代表 Control-J |
\xA | 16 進位記號,A16 = 1010 = 換行字元 |
\012 | 8 進位記號,128 = 1010 = 換行字元 |
\\ | 反斜線 |
\" | 雙引號 |
\' | 單引號 |
\l | 下一個字元改為小寫 |
\u | 下一個字元改為大寫 |
\L | 由下一個字元開始,到\E或字串結束之位置,都改為小寫 |
\U | 由下一個字元開始,到\E或字串結束之位置,都改為大寫 |
\E | 結束 \L 或 \U 的效用 |
字串處理相關的函數,
符號 | 說明 |
---|---|
chomp | 移除字串尾端的換行字元 |
chop | 移除字串尾端的字元 |
chr | 將 ASCII 代碼轉換至字元 |
crypt | 字串加密 |
hex | 將 16 進位表示的字串轉為數值 |
index | 傳回一字串在另一自串出現的第一個位置 |
lc | 轉為小寫字元 |
lcfirst | 第一個字母轉為小寫字元 |
length | 計算字串長度 |
oct | 將 8 進位表示的字串轉為數值 |
ord | 將字元轉換為數值(ASCII 代碼或 Unicode) |
pack | 將數值或字串進行各種壓縮與轉換 |
q/STRING/ | |
qq/STRING/ | |
reverse | 將自串左右顛倒 |
rindex | 傳回一字串在另一自串出現的最後一個位置 |
sprintf | 傳回由 printf 所形成的字串 |
substr | 取出子字串 |
tr/// | 字串轉換運算(Transliteral Operation) |
uc | 將字串全部變成大寫 |
ucfirst | 將字串的第一個字母變成大寫 |
y/// | 字串轉換運算(Transliteral Operation) |
可用字串來讀取鍵盤輸入,例如:
$str6 = <STDIN>; # 從鍵盤(即標準輸入裝置,STDIN)取得一列文字輸入
chomp($str6); # 刪除此輸入字串尾端的換行符號
也可合成一列程式碼:
chomp($a = <STDIN>);
若要將一個檔案(test.txt)的內容逐一讀出,可用下列程式碼:
open(FILE, "test.txt") || die("Cannot open file");
$line = <FILE>;
while (defined($line)) {
print "$line";
$line = <FILE>; }