my $flag=0;for(my $i=0;$i<@A;$i++){for(my $j=0;$j<@B;$j++){if($B[j] eq $A[i]){$flag++;last;}}}if($flag==@A){print "\@A is part of \@B";}其实就是同时遍历A和B数组,如果A数组中的值在B数组中存在,则计数加1,当全部遍历完成之后,则$flag的数表示A数组中在B数组里面存在的个数。当存在个数和数组A中元素个数相同时,则说明A数组为B数组的子集。其中last是防止A数组中某一个元素在B数组中存在两次时错误多加一次。