The first thing that screamed at me when reading your code is that this:
sub mergeSort( \@arrayRef ) {
Isn't a legal Perl construct. And sure enough, running a syntax check on your code exactly as posted produces:
C:\test>perl -c junk92.pl Illegal character in prototype for main::mergeSort : \@arrayRef at jun +k92.pl line 27. Scalar value @leftSide[$i] better written as $leftSide[$i] at junk92.p +l line 40. Scalar value @leftSide[$i] better written as $leftSide[$i] at junk92.p +l line 41. Scalar value @rightSide[$i - $middle] better written as $rightSide[$i +- $middle] at junk92.pl line 47. Scalar value @rightSide[$i - $middle] better written as $rightSide[$i +- $middle] at junk92.pl line 48. Prototype mismatch: sub main::mergeSort (\@) vs (\@arrayRef) at junk92 +.pl line 55. Scalar value @groupA[$i] better written as $groupA[$i] at junk92.pl li +ne 62. Scalar value @groupB[$j] better written as $groupB[$j] at junk92.pl li +ne 62. Scalar value @groupA[$i] better written as $groupA[$i] at junk92.pl li +ne 63. Scalar value @groupB[$j] better written as $groupB[$j] at junk92.pl li +ne 67. Scalar value @groupA[$i] better written as $groupA[$i] at junk92.pl li +ne 73. Scalar value @groupB[$j] better written as $groupB[$j] at junk92.pl li +ne 78. junk92.pl syntax OK
Which means you've either been ignoring the messages; or you added strict and warnings for posting.
Fix that lot, then come back and someone will explain to you why this will never work:
my ( @groupA, @groupB, $dataRef ) = @_;
In reply to Re: Dereferencing arrays
by BrowserUk
in thread <SOLVED>Dereferencing arrays
by divitto
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |