perl子例程引數傳遞方式初探

2021-03-31 08:56:32 字數 992 閱讀 4626

perl裡,子例程採用可變長引數列表,因此引數的個數不再限制,體現出動態語言的優點。由於傳遞的是引用,所以可以在sub裡改變它的值。

samle01.pl

#!/usr/bin/perl

sub sub_routine

my $par1 = "abcde";

my $par2 = 2;

print "main_par1:$par1/n";

print "main_par2:$par2/n";

&sub_routine($par1, $par2);

print "main_par1:$par1/n";

print "main_par2:$par2/n";

執行結果:

main_par1:abcde

main_par2:2

sub_par1:hello

sub_par2:999

main_par1:hello

main_par2:999

如果不想在子例程裡改變引數的值,可以採用生命區域性變數的方法。

sample02.pl

#!/usr/bin/perl

sub sub_routine

my $par1 = "abcde";

my $par2 = 2;

print "main_par1:$par1/n";

print "main_par2:$par2/n";

&sub_routine($par1, $par2);

print "main_par1:$par1/n";

print "main_par2:$par2/n";

執行結果:

main_par1:abcde

main_par2:2

sub_par1:abcdefghijklmn

sub_par2:10002

main_par1:abcde

main_par2:2

Perl 子例程呼叫by引用

第一種情況,傳匿名子例程引用 my rs greet rs greet wrong rs joan kim 當呼叫的已經是匿名子例程引用的時候。這行放在這裡報錯 my hidrs sub here is only 1 line not 4 lines hidrs tim my hidrs這塊不能放在...

perl 子過程 列表處理

1 定義子過程最普通的例子 sub razzle razzle 省略了輸入引數和輸出 返回值 perl向子過程傳入資料和子過程傳出資料的方法 所有傳入的引數被當成單個平面標量列表,類似的多個返回值也被當做單個平面標量列表返回給呼叫者 當使用list也一樣,任何傳入的陣列或雜湊的值都代換到一個平面的列...

監聽 傳參 子元件

背景 專案為常見的管理後臺系統,封裝了一個列表元件 列表元件內定義了searchdata方法用於調取獲取列表資料的介面 邏輯如下 父元件 data b 字串型別 watch if 某種判斷 b val this refs.child.searchdata methods changeb val 列表...

Vue 父向子元件傳參

父向子元件傳參經常用,比如說我們寫了一個select元件,呼叫的時候需要向子元件傳初始的資料。這就要父元件向呼叫的子元件傳參 父向子傳參 現在我們想要從當前頁面往子元件傳參,在標籤中寫上傳參的資料 這時在子元件中呼叫this.msgfromfather是undefind 的,需要在子元件的expor...

子窗體傳參給父窗體(Owner)

這幾天做專案時,遇到了這一問題 frmsendsms sms frmsendsms this.owner sms.listview1.items.add num 報 未將物件引用設定到物件的例項 錯.我在網上搜了一下,終於找到問題的癥結了.最後結合msdn整理如下 網路真是個好東西,資料浩瀚.注 主...