我試圖將參數傳遞給perl子例程,並且無論出於何種原因,子例程中的參數都是空的。Perl將參數傳遞給子例程不起作用
...
...
...
print "Passing arguments $a, $b, $c, $d \n";
beforeEnd($a, %b, $c, $d);
sub beforeEnd() {
my ($a, %b, $c, $d) = @_;
print "a is $a, b is $b, c is $c, d is $d \n";
}
打印語句的輸出給了我一個想法,即某些錯誤。奇怪的部分?前兩個參數正確傳遞。
> Passing arguments 1, (1,2,3), 2, 3
> a is 1, b is (1,2,3), c is , d is
任何幫助將不勝感激。
您正在傳遞'%b',但是正在打印'$ b'。 – Barmar 2015-03-30 19:22:08
賦值中的列表變量將接收函數的所有其餘參數。 – Barmar 2015-03-30 19:23:12
如果要傳遞列表而不將其作爲單獨的參數傳播出去,則應該使用數組引用。 – Barmar 2015-03-30 19:24:37