use strict; my @poly1 = ( 2, 4, 6 ); my @poly2 = ( 3, 1, 0 ); my @poly4 = ( 5, 2, 1, 2 ); my @poly3 = p( \@poly1, \@poly2, \@poly4 ); print (join',',@poly3)."\n"; my @poly5 = p( \@poly4, \@poly1, \@poly2 ); print (join',',@poly5)."\n"; sub p { my$a=shift;my$b=shift;my(@c,$i,$j);for$i(0..$#$a){for$j(0..$#$b){$c[$i+$j]+=$$a[$i]*$$b[$j]}};@_?p(\@c,@_):\@c }