Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

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!


Comment on Re^6: Dereferencing arrays
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?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (5)
As of 2014-10-20 05:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (72 votes), past polls