Perl最佳實踐 閱讀記錄

2021-09-11 02:30:15 字數 1434 閱讀 1160

控制結構

子程式正規表示式

namespace -> noun::adjective::adjective

| noun::adjective

| noun

package disk;

package disk::audio;

package disk::***::rewritable;

variable -> [adjective_]* noun

my $next_client;

my $root_node;

my $final_total;

look-variable -> [adjective_]* noun preposition

my %title_of;

my @sales_from;

routine -> imperative_verb [_adjective]? _ noun _ preposition

| imperative_verb [_adjective]? _ noun _ participle

| imperative_verb [_adjective]? _ noun

sub get_record

sub get_record_for

sub is_valid

sub has_end_tag

my $has_found_bad_record;

把儲存引用的變數標上_ref字尾

my @books;

my $books_ref = \@books;

陣列以複數命名,而雜湊以單數命名

my %option;

my %title_of;

my @events;

my @handlers;

字尾if保留給流程控制語句,如next、last、redo等;

其他情況盡量使用if塊;

不要使用unless、until等字尾

不要把子程式的名稱取得和內建函式相同;

標量返回值一定要用return scalar;

讓返回列表的子程式在標量上下文返回「明顯的」值;

通過顯示的return來返回

一定要使用/x標記;

一定要使用/m標記;

以\a和\z作為字串邊界錨點;

總是使用/s標記;

考慮強制使用regexp::autoflags模組;

優先使用m,少在多行正規表示式中用/…/;

考慮使用regexp::common,不要自己寫正規表示式;

Perl 最佳實踐 節選 06

使用 塊 if,不要使用字尾 if。例如,下面的就不好理解 sum measurement if defined measurement 其實,它等於 if defined measurement sum measurement 字尾 if要保留給流程控制語句。不要使用 unless for whi...

Perl 最佳實踐 節選 08

不要在 sort 中重新計算排序鍵。使用 reverse 逆轉列表。使用 scalar reverse 逆轉標量。使用 unpack 取出固定寬度的字段。使用 split 取出簡單的可變寬度的字段。使用 text csv xs 以取出複雜的可變寬度的字段。避免對字串使用 eval 考慮以 sort ...

Perl 最佳實踐 節選 10

不要使用未修飾字檔案控制代碼 bareword filehandle 使用間接檔案控制代碼。如果你要使用包檔案控制代碼,就先將其局域化。使用 io file 模組或三自變數形式的 open 對檔案做 open close print 時一定要檢查結果。顯式關閉檔案控制代碼,而且要盡可能快一點。使用 ...