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中所有函式的引數都是按值傳遞的。也就是說,函式的傳參,就和基本型別變數的複製一樣,而引用型別值的傳遞,則如同引用型別變數的複製一樣。這裡可能會使很多人感到困惑,因為訪問變數有...