Perl語法的基本規則

weixin_34321977發表於2018-08-21

因為是比較凌亂的用法規則收集,所以能看懂則看,不能看懂也無所謂。以後也會遇到。

  • Perl指令碼第一行使用#!。Perl的字尾名一般為".plx"或".pl",執行時使用perl NAME.plx即可

例如,1.plx內容如下:

#!/usr/bin/perl
print "hello world\n"

執行該指令碼:

shell> perl 1.plx
  • 註釋。Perl只支援"#"註釋,所以只支援單行註釋、行內到結尾註釋
# comment
print "hello world\n" # comment
  • Perl指令碼中,除了最後一行,每行都需要以";"結尾,除非是註釋行

  • Perl中不需要對變數進行宣告,可以直接賦值、引用
$var=12;
print $var;
  • use指定使用某個版本的perl,如5.10版本。注意,use中是5.010而不是5.10,use 5.10會被perl認為是5.100版
use 5.010;

如果指定更細緻的小版本號,如5.10.1版,則:use 5.010001;

  • 最好都加上use utf8語句
use utf8;
  • 最好在每個Perl程式中加上use strict語句,這在後面寫稍大一點的Perl程式基本上是一種規範

該功能讓Perl編譯器以嚴格的態度對待Perl程式,如果定義了變數卻未使用過,或者引用了未定義過的變數,都會編譯錯誤。

use strict;
  • 可以加上warning資訊進行除錯
use warnings;

或者perl -w,或者在Perl指令碼中:

#!/usr/bin/perl -w
  • Perl中可以通過反引號來執行作業系統中的命令
$var=`date +"%F %T"`
print $var
  • Perl中呼叫自帶的內建函式時,可以使用括號傳遞引數,也可以省略括號

例如,呼叫print函式:

print("hello world\n");
print "hello world\n";
  • Perl中的ENV:Perl可以通過ENV這個hash直接訪問作業系統的環境變數
print $ENV{PATH};   # 輸出作業系統的PATH環境變數

如果Perl想訪問作業系統中某個變數,可以直接在作業系統中設定,然後通過Perl訪問:

$ myvar=2;export myvar;

print $ENV{myvar};
  • Perl中token之間如果是不同的命名型別,則中間的空格分隔符號可以省略

主要體現在函式和引數之間的空格。

print"abc","def\n";   -> print "abc","def\n"
print$var;      -> print $var
my$var="abc";   -> my $var
print~~length$var -> print length $var

顯然,引數部分的首字元如果是數值、下劃線或字母,則會被當作函式名的一部分進行解析,這是錯誤的省略方式:

print1+3;