perl数组和整数直接做加减法是什么意思

求教以下这段代码是什么意思:
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吗?两个数组如果直接做加法的话,是在算这两个数组的元素个数之和吗?

繁星淼淼
浏览 892回答 3
3回答

慕田峪4524236

这个问题专业术语就是: perl中的上下文(context)的问题。perl中分 列表上下文 和 标量上下文 2种。perl会根据上下文的种类来得到相应的值。比如:数组在 列表上下文中得到元素的列表, print "@num\n" ;得到一系列数字。而 在标量上下文, 比如 单独赋值或者 数学运算加减等情况下就是标量上下文, perl返回数组的元素的个数!比如: $len_of_nums = @nums; 或者你上面的例子。

小怪兽爱吃肉

@array_copy = @mantra;($first_element_of_array) = @mantra; (# shift @mantra)$number_of_element = @mantra; (# scalar @mantra)

慕标琳琳

将数组作为标量计算,就返回数组中元素个数在本例中$mantra_gradient =255/(4+4-1)=36.428571……如果初学 可看看 perl语言入门 这个问题在P61页
打开App,查看更多内容
随时随地看视频慕课网APP