in reply to Re: Dereferencing arrays
in thread <SOLVED>Dereferencing arrays
That was me messing with prototypes another topic im still learning in perl. however my code above is directly copy pasted from my real code i changed nothing and i did not just add use strict or use warnings for posting, yet i get nothing like what you got. ill fix the issues, but this leads me to think something is wrong with my enviorment.. EDIT: Oops lol the warnings were scrolling off screen in my terminal i feel dumb. Still get the error though. heres the new code:
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; #protos # sub mergeSort( \@ ); my @unsortedData = ( 5, 4, 7, 2, 1, 3, 6, 9, 8, 10 ); # show the original data to screen for( @unsortedData ) { print "$_ "; } print "\n"; my $sortedData = &mergeSort( \@unsortedData ); # show the new data to screen for( @$sortedData ) { print "$_ "; } print "\n"; ### dereferencing of arrays isnt working in below method sub mergeSort { my ( $data ) = @_; if( @$data < 2 ) { return $data; } # if there is less then two it +ems it's already sorted!! use integer; #split the array into two parts my $middle = @$data / 2; print "middle: $middle\n"; my @leftSide = (); print "LeftSide:\n"; for( my $i = 0; $i < $middle; $i++ ) { $leftSide[$i] = @$data[$i]; print "$leftSide[$i] "; } print "\n"; my @rightSide = (); print "RightSide:\n"; for( my $i = $middle; $i < @$data; $i++ ) { $rightSide[$i - $middle] = @$data[$i]; print "$rightSide[$i - $middle] "; } print "\n"; &mergeSort( @leftSide ); &mergeSort( @rightSide ); &merge( @leftSide, @rightSide, $data ); return $data; } sub merge { my ( @groupA, @groupB, $dataRef ) = @_; my $i = 0; my $j = 0; my $k = 0; while( $i < @groupA && $j < @groupB ) { if( $groupA[$i] <= $groupB[$j] ) { @$dataRef[$k] = $groupA[$i]; $i++; } else { @$dataRef[$k] = $groupB[$j]; $j++; } $k++; } while( $i < @groupA ) { @$dataRef[$k] = $groupA[$i]; $i++; $k++; } while( $j < @groupB ) { @$dataRef[$k] = $groupB[$j]; $j++; $k++; } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Dereferencing arrays
by tobyink (Canon) on Mar 19, 2014 at 20:24 UTC | |
|
Re^3: Dereferencing arrays
by BrowserUk (Patriarch) on Mar 19, 2014 at 20:37 UTC | |
by divitto (Novice) on Mar 19, 2014 at 20:43 UTC | |
by BrowserUk (Patriarch) on Mar 19, 2014 at 21:11 UTC | |
by divitto (Novice) on Mar 19, 2014 at 21:27 UTC | |
by BrowserUk (Patriarch) on Mar 20, 2014 at 03:26 UTC |