求教以下這段代碼是什么意思:my @mantra = qw(Simple things are simple.);my @other_mantra = qw(Complex things are possible!);my $mantra_gradient = 255/(@mantra + @other_mantra - 1); 直接把兩個數組和整數之間做加減法,是什么意思?上面@mantra + @other_mantra - 1的值是7嗎?兩個數組如果直接做加法的話,是在算這兩個數組的元素個數之和嗎?
3 回答

慕田峪4524236
TA貢獻1875條經驗 獲得超5個贊
這個問題專業術語就是: perl中的上下文(context)的問題。perl中分 列表上下文 和 標量上下文 2種。perl會根據上下文的種類來得到相應的值。
比如:數組在 列表上下文中得到元素的列表, print "@num\n" ;得到一系列數字。而 在標量上下文, 比如 單獨賦值或者 數學運算加減等情況下就是標量上下文, perl返回數組的元素的個數!比如: $len_of_nums = @nums; 或者你上面的例子。

小怪獸愛吃肉
TA貢獻1852條經驗 獲得超1個贊
@array_copy = @mantra;
($first_element_of_array) = @mantra; (# shift @mantra)
$number_of_element = @mantra; (# scalar @mantra)

慕標琳琳
TA貢獻1830條經驗 獲得超9個贊
將數組作為標量計算,就返回數組中元素個數
在本例中$mantra_gradient =255/(4+4-1)=36.428571……
如果初學 可看看 perl語言入門 這個問題在P61頁
- 3 回答
- 0 關注
- 1007 瀏覽
添加回答
舉報
0/150
提交
取消