in reply to Re: references best practice
in thread references best practice

Your second example isn't doing what you intend. The array outside of the sub isn't modified. The first line of prepData2 sets $refData to the incoming reference. The second replaces that reference with a different one, leaving the contents of the first reference unchanged. You'd want something more like:
sub prepData2 { my $refData = shift; @$refData = map { log $_ } 1 .. 100; }
With that change, the benchmark changes somewhat, making it almost identical to array_ref_out1 in my tests.