perl兩數組進行比較刪除小程序

給兩個數組A1,A2, 取出屬於A1不屬於A2的元素,即若A1=("1","2","3","4","5"),A2=("4","5","6","7"), 要求輸出結果A2=("1","2","3").


解決方法:利用map函數進行處理,測試結果如下


#!/usr/bin/perl -w

my @arr1 = ("1","2","3","4","5");
my @arr2 = ("4","5","6");

print "before changing arr1:\n";
foreach (@arr1)
{
    print "$_\n";
}

print "before changing arr2:\n";
foreach (@arr2)
{
    print "$_\n";
}

# 將數組2存入散列
my %harr2 = map {$_ => undef} @arr2;
#取屬於A1不屬於A2的元素

@arr1 = grep {not exists $harr2{$_}} @arr1;


print "after changing arr1:\n";
foreach (@arr1)
{
    print "$_\n";
}
print "after changing arr2:\n";
foreach (@arr2)
{
    print "$_\n";
}


運行結果:

[web@localhost new]$ perl testArray1.pl
before changing arr1:
1
2
3
4
5
before changing arr2:
4
5
6
after changing arr1:
1
2
3
after changing arr2:
4
5
6


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章