Perl 網頁程式設計課程目錄

Perl 的子程式 (Sub-routines)

當程式越來越長, 如果將所有程式都放在主程式內, 主程式會變得很長, 這樣會令到程式很難閱讀.

我們可以用子程式 (Sub-routines), 不但令到主程式會變比較短, 而且令到程式很簡潔及容易閱讀.

有時, 有一些程式需要重複使用, 你不必用 Copy and Paste的方法那麼煩, 只需呼叫子程式便可以了.

什麼是子程式呢? 請參閱下圖:

Perl Sub-routines

當主程式呼叫子程式後, 程式便會跳出主程式, 跳到子程式, 當子程式執行完畢後, 便會跳回主程式, 繼續執行主程式.

Perl 程式是可以用以下方法呼叫子程式 :

&subroutinename

即是 : 在子程式名稱前加一個 "&" 便可以呼叫該子程式了.

那麼, 子程式本體又如何呢 ? 十分簡單 :

sub subroutinename {
---------------------
---------------------
---------------------
---------------------
}

講了那麼多, 相信讀者已經一頭霧水. 其實,一看例子便明白了, 明白了, seasame, seasame.

我們用本章第四節 (比較二) 的例子來解釋:

以下是本章第四節 (比 較 二) 的原本程式 :

#!/usr/bin/perl
print "Content-type: text/html\n\n";
#
### Set Variables ########
#
$age1=55;
$age2=52;
$age3=49;
$age4=46;
#
$secret=45;
#
### Comparision #######
#
if ($secret > $age4) {
  print "Yau is younger than $secret";
  } else {
  print "Yau is older than $secret";
}

使用一個子程式:

#!/usr/bin/perl
print "Content-type: text/html\n\n";
#
### Set Variables ########
#
$age1=55;
$age2=52;
$age3=49;
$age4=46;
#
$secret=45;
#
### Call Sub-routine #######
#
&comparison;
#
#
#
### Sub-routine ###########
#
sub comparison {
if ($secret > $age4) {
    print "Yau is younger than $secret";
  } else {
    print "Yau is older than $secret";
  }
}

使用二個子程式:

#!/usr/bin/perl
print "Content-type: text/html\n\n";
#
&variable;
#
$secret=45;
#
&comparison;
#
#
#
### Sub-routine ###########
#
sub variable {
$age1=55;
$age2=52;
$age3=49;
$age4=46;
}
#
#
sub comparison {
if ($secret > $age4) {
    print "Yau is younger than $secret";
  } else {
    print "Yau is older than $secret";
  }
}

看 ! 主程式只剩餘短短的五行 !