The following code works for me. You are using sort function wrongly as Zaxo indicated. Also i think you are not sending the arrays as reference for subroutine parameters. You have to send the arrays as reference for subroutine parameters. For example, comp_arr (\@anc, \@ind)
use strict; use warnings; my @anc=("BX1.01.001","BX1.01.002","BX1.01.003","BX1.01.004","BX1.01.0 +05","BX1.01.006"); my @ind=("BX1.01.002","BX1.01.002","BX1.01.003","BX1.01.004","BX1.01.0 +05","BX1.01.006"); comp_arr (\@anc, \@ind); sub comp_arr { my @arr1= sort (@{$_[0]}); my @arr2= sort (@{$_[1]}); if ($#arr1 != $#arr2) { print "Indicator and anchor count do not match"; exit; } for my $x (0..$#arr2) { print "$arr1[$x]\t$arr2[$x]\n"; print ("Anchor/indicator mismatch in $arr1[$x]\n") if ($arr2[$ +x] ne $arr1[$x]); } } output: ------- BX1.01.001 BX1.01.002 Anchor/indicator mismatch in BX1.01.001 BX1.01.002 BX1.01.002 BX1.01.003 BX1.01.003 BX1.01.004 BX1.01.004 BX1.01.005 BX1.01.005 BX1.01.006 BX1.01.006
Prasad
In reply to Re: Comparing arrays with text contents
by prasadbabu
in thread Comparing arrays with text contents
by rsriram
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |