perl學習筆記(2)

來源:互聯網
上載者:User

標籤:perl

1)記得剛開始寫perl的時候,對於一個功能,總是拿目前能用的資料類型來解決問題,不想想有沒有更好的,能用能解決問題就好,這就導致了後期,要在函數裡面添加功能的時候,函數要添加很多參數,一個函數有7、8個參數,並且這些參數都是有關係的,

sub is_healthy{    my ($name, $sex, $age, $height, $weight) = @_;    }
像上面這個判斷一個人是否健康的函數,傳入這幾個參數,這幾個參數還不算多,但是,到了後期,一旦你要增加功能,比如要根據一個人的地址做一些操作,那可能就需要再添加一個參數 address, 好,參數多了一個,但是,需求可能會不斷增加,再加一個參數。。。。最後參數會很多,調用函數時,總是看到長長的尾巴。我就是這麼寫的。最後,經過前輩提醒,才發現自己真的沒有好好思考過這個問題,為啥不用hash呢,多麼簡單省事,像這樣,

my $human = {};
$human->{name} = "1y";

傳參數的時候,只要傳一個,

is_healthy($human);
如果要添加參數的時候,只要在hash裡添加鍵值對就好了嘛,這樣在調用函數時,不用做什麼改變,省事,不過,對於一些不相關的參數,得好好考慮。

2)perl裡-e 用於判讀是否存在,看到別人寫的代碼,用-e來判斷一個目錄或檔案是否存在,

sub is_dir_exist{    my ($thing) = @_;    if( -e $thing){    print "exist";    }else{    print "no";    }}
這個可以判斷目錄是否存在,假設在目錄存在之後,接下來的操作都是針對目錄而操作的,但如果你不小心傳入了一個檔案,並且對檔案進行了原本是針對目錄的操作,這時未來充滿了未知,要挨罵了。。。

判斷目錄可以用-d,在這種情況下用-e有風險,可能會把錯誤參數傳到代碼裡。



perl學習筆記(2)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.