溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Perl 變量命名規(guī)則有哪些

發(fā)布時間:2022-02-24 11:44:29 來源:億速云 閱讀:216 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下Perl 變量命名規(guī)則有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

perl中變量命名規(guī)則

變量命名規(guī)則:

1.不要與perl中的內(nèi)置變量名相同如:%ARGV,$a,$b $_ 等等

2.perl中的變量名嚴(yán)格區(qū)分大小寫

3.建議使用大字母,小寫字母,數(shù)字,下劃線組合命名變量名。其他特殊字符。

Perl 變量命名規(guī)則有哪些

變量命名示例

變量名采用 形容詞_名詞 的格式命名,多個單詞之間用下劃線分隔,比如

$next_record
$total_score
$root_node

對于查表的數(shù)組或者哈希,采用 xxx_of, xxx_for的命名方式,也就是在末端加上介詞,比如。

my %title_of;
my %ISBN_for;
my @sales_from;

這種寫法會使后面的代碼可讀性極好。

while (my $month = prompt -menu => $MONTH_NAMES) {
for my $book (@catalog) {
print "$ISBN_for{$book} $title_of{$book}: $sales_from[$month]\n";
    }
}

對于子程序和方法而言,構(gòu)成名稱的文法規(guī)則如下

sub get_record
sub get_record_for

sub eat_cookie
sub eat_previous_cookie

sub build_profile
sub build_execution_profile
sub build_execution_profile_using

如此一來,后面的代碼幾乎不用加注釋。

@config_options = get_record_for($next_client);

for my $option (@config_options) {
    build_execution_profile_using($next_client, $option);
}

布爾值命名

一般以所測試的屬性或斷言作為命名依據(jù),這也會使條件表達(dá)式讀起來很自然,通常來講,這些名稱大多以is_或has_開頭,當(dāng)然也有例外,比如。

sub is_valid;
sub metadata_available_for;
sub has_end_tag;

my $loading_finished;
my $has_found_bad_record;

看看使用這種規(guī)則的代碼可讀性吧,如下,幾乎是自注釋的。

if (is_valid($next_record) && !$loading_finished) {
    METADATA:
while (metadata_available_for($next_record)) {
        pushu @metadata, get_metadata_for($next_record);
last METADATA if has_end_tag($next_record);
    }
}
else {
$has_found_bad_record = 1;
}

引用變量命名

在引用變量的后面加上_ref,可以防止把引用變量當(dāng)作普通變量使用。

數(shù)組和哈希

哈希通常以單數(shù)命名,后跟介詞,前面已經(jīng)講過,而數(shù)組處則通常以復(fù)數(shù)命名。

下劃線

名稱的單詞之間以下劃線來分隔。

大小寫

子程序,方法,變量,加標(biāo)簽的自變量都使用小寫。

包和類名(IO::Controller)使用混合的大小寫。

常量則使用大寫($SRC, $ARG)。

實(shí)用子程序

在編寫類或模塊時,僅供內(nèi)部使用而不導(dǎo)出的子程序,應(yīng)該以下劃線開頭

以上是“Perl 變量命名規(guī)則有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI