Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Re^6: Dereferencing arrays

by divitto (Novice)
on Mar 19, 2014 at 21:27 UTC ( #1078996=note: print w/replies, xml ) Need Help??

in reply to Re^5: Dereferencing arrays
in thread <SOLVED>Dereferencing arrays

Thank you very much, this clarifies everything. I wasn't fully aware of how @_ worked. I will do more reading on it for sure. Thanks again!

Replies are listed 'Best First'.
Re^7: Dereferencing arrays
by BrowserUk (Pope) on Mar 20, 2014 at 03:26 UTC

    Just for fun, here's your code reworked to be a little more idiomatic:

    #!/usr/bin/perl use strict; use warnings; use Data::Dumper; my @unsortedData = ( 5, 4, 7, 2, 1, 3, 6, 9, 8, 10 ); print "@unsortedData\n"; mergeSort( \@unsortedData ); print "@unsortedData\n"; sub mergeSort { my( $data ) = @_; return $data if @$data < 2; # if there is less then two items it' +s already sorted!! my $middle = @$data / 2; my $leftSide = [ @$data[ 0 .. $middle -1 ] ]; my $rightSide = [ @$data[ $middle .. $#{ $data } ] ]; mergeSort( $leftSide ); mergeSort( $rightSide ); merge( $leftSide, $rightSide, $data ); return $data; } sub merge { my ( $groupA, $groupB, $dataRef ) = @_; my( $i, $j, $k ) = (0)x3; @$dataRef[$k++] = $groupA->[$i] <= $groupB->[$j] ? $groupA->[$i++] : $groupB->[$ +j++] while $i < @$groupA && $j < @$groupB; @$dataRef[$k++] = $groupA->[$i++] while $i < @$groupA; @$dataRef[$k++] = $groupB->[$j++] while $j < @$groupB; }

    It also demonstrates something to be aware of; namely, it doesn't use a variable: $sortedData!

    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1078996]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (14)
As of 2016-10-26 14:55 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (341 votes). Check out past polls.