perl方法傳遞hash引數

2021-06-21 22:53:24 字數 1016 閱讀 3592

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 這樣做結果是錯誤的,結果是子...

方法引數傳遞

對於基本資料型別的引數,形式引數的改變,不影響實際引數的值 public class argsdemo01 public static void change int number 對於引用型別的引數,形式引數的改變,影響實際引數的值 public class argsdemo02 system.o...

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

perl裡,子例程採用可變長引數列表,因此引數的個數不再限制,體現出動態語言的優點。由於傳遞的是引用,所以可以在sub裡改變它的值。samle01.pl usr bin perl sub sub routine my par1 abcde my par2 2 print main par1 par1...