還是研究perl.
我的意圖,是把所有使用者介面關注的 perl呼叫,用乙個函式進行包裝。
所以,我需要進行一層wrap.
也就是說,函式要呼叫函式。
經過與同事幾個小時的研究,兩人一番討論。
終於找到了方法。
這裡面有兩個關鍵問題,乙個是函式指標,另乙個是引數。
引數對於perl來說,真不是問題,這是我這乙個多月,感觸最深的。是perl的靈魂。
但函式指標,走了大半天彎路才明白寫法:
uioper::agentcall( \& haotestmode::mvpackage,"adf","kjgh");
我一開始,少了前面的取址符。也真是夠透豆的。
結果是,先呼叫了haotestmode::mvpackage,然後說乙個引數也沒拿到。
好了,**附上:
test.pl
#! /usr/bin/perl
use uioper;
use haotestmode;
uioper::agentcall(\&haotestmode::mvpackage,"adf","kjgh");
#也可以寫成:uioper::agentcall(『haotestmode::mvpackage』,"adf","kjgh");
uioper.pl
package uioper;
#use haotestmode;
#comment of mvpackage
%funcmap=('haotestmode::mvpackage'=>\&haotestmode::mvpackage);
sub agentcall
;# 也可以寫作: my $funcptr= $funcmap;
#my $funcptr= $a;
$funcptr->(@xx);
return 1;}1;
haotestmode.pl
#! /usr/bin/perl
package haotestmode;
#comment of mvpackage
sub mvpackage
1;
Perl 函式引用
函式的引用 ref func func的定義在其他位置 不要 當 func 時為執行函式,返回值再引用。當 func 時為執行函式,返回值再引用。oracle jhoa 3 cat 3.pl sub generate greeting 引用 rs generate greeting print rs...
Perl函式pack unpack解釋
函式名 pack 呼叫語法 formatstr pack packformat,list 解說把乙個列表或陣列以在實際機器存貯格式或c等程式語言使用的格式轉化 包裝 到乙個簡單變數中。引數packformat包含乙個或多個格式字元,列表中每個元素對應乙個,各格式字元間可用空格或tab隔開,因為pac...
Perl函式pack unpack解釋
函式名 pack 呼叫語法 formatstr pack packformat,list 解說把乙個列表或陣列以在實際機器存貯格式或c等程式語言使用的格式轉化 包裝 到乙個簡單變數中。引數packformat包含乙個或多個格式字元,列表中每個元素對應乙個,各格式字元間可用空格或tab隔開,因為pac...