perl基礎 傳遞hash型別引數

2021-04-15 08:08:24 字數 967 閱讀 5679

1 如果是

只有乙個引數要傳,且是hash,最直接想到的辦法就是像傳其他型別引數一樣直接傳,

如:   subfuntion(%hash1);

2 如果有

多於乙個引數要傳,這裡假設只有乙個引數的型別是hash的,並把hash放到最前面,

如: subfuntion(%hash1, $var2);

這樣做結果是錯誤的,結果是子函式把第2個引數$var2 合併到第乙個hash上面去,

不是你希望得到的

若把hash放在最後面的位置上,就可以了,**如下:

&subfuntion($var, %hash);

sub subfuntion()

如果這樣做,你的程式會花費太大的代價,下面接著的是 引用的方法,這樣不會限制你有幾個hash型別的引數,也不限制引數的位置:

#! c:/perl/bin/perl.exe

use strict;

use warnings;

my %hash2 = ('7'=>'trojan','8'=>'worm','9'=>'hack','6'=>'harm');

my $str = &strctlselect(/%hash2,"ixigua", "8","disabled",);   

#「/

%」是必須的

print $str;

sub strctlselect()

/n";

#「$」及「->」是必須的

}else /n"; }

}$str .= "";

return $str; }

產生的結果如下:

harm

trojan

worm

hack

perl方法傳遞hash引數

1 如果是 只有乙個引數要傳,且是hash,最直接想到的辦法就是像傳其他型別引數一樣直接傳,如 subfuntion hash1 2 如果有 多於乙個引數要傳,這裡假設只有乙個引數的型別是hash的,並把hash放到最前面,如 subfuntion hash1,var2 這樣做結果是錯誤的,結果是子...

Redis基礎資料型別詳解之Hash

hash hash型別跟string有所不同。它適合於儲存物件。乙個hash集合可以儲存多個string型別,即可以儲存多個鍵值對。hset hset hashname key1 value1 其中,hset是建立hash的命令,hashname是該hash的名字,key1 value則是鍵值對。獲...

JS基礎 引用型別的引數傳遞

ecmascript中所有函式的引數都是按值傳遞的。可以把ecmascript函式的引數想象成區域性變數。ecmascript中所有函式的引數都是按值傳遞的。也就是說,函式的傳參,就和基本型別變數的複製一樣,而引用型別值的傳遞,則如同引用型別變數的複製一樣。這裡可能會使很多人感到困惑,因為訪問變數有...