在PERL中删除数组中重复的元素,并按序排列
root@darkstar:/home/tiger506/Program/Perl# cat -n ./p_uniq_num.pl 1 ?#!/usr/bin/perl 2 ?use strict; 3 ?my @num_array=(1,2,5,4,3,1,6,5); 4 ?my $num_count=$#num_array+1; 5 ?my $tmp=undef; 6 7 8 ?for(my $i=0;$i<$num_count;$i++){ #将数组按照由大到小的顺序排列 9 ? ? ? ? ?for(my $j=$i+1;$j<$num_count;$j++){10 ? ? ? ? ? ? ? ? ?if($num_array[$i]<$num_array[$j]){11 ? ? ? ? ? ? ? ? ? ? ? ? ?$tmp=$num_array[$i];12 ? ? ? ? ? ? ? ? ? ? ? ? ?$num_array[$i]=$num_array[$j];13 ? ? ? ? ? ? ? ? ? ? ? ? ?$num_array[$j]=$tmp;14 ? ? ? ? ? ? ? ? ?}15 ? ? ? ? ? ? ? ? ?if($num_array[$i]==$num_array[$j]){16 ? ? ? ? ? ? ? ? ? ? ? ? ?delete @num_array[$j]; #剔除重复的元素17 ? ? ? ? ? ? ? ? ?}18 ? ? ? ? ?}1920 ?}2122 ?print "剔除数组中冗余元素后,将数组由大到小排序: ";23 ?my @new_array;24 ?foreach my $element(@num_array){ 25 ? ? ? ? ?print $element."_";26 ? ? ? ? ?if($element=~m/d/){ 27 ? ? ? ? ? ? ? ? ?push @new_array,$element;28 ? ? ? ? ?}29 ?}30 ?print "n";31 ?print"数组长度为".($#new_array+1)."n";32结果:root@darkstar:/home/tiger506/Program/Perl# ./p_uniq_num.pl剔除数组中冗余元素后,将数组由大到小排序: 6_5_4_3_2_1_数组长度为6 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |