You may want to see Wasting time thinking about wasted time. You really have to think about the numbers that Benchmark gives back to you, and running something four million times a second probably means you aren't actually running anything interesting. The benchmark I presented had the same problem you run into: void context optimization.

Update: After playing with this for a bit (I'm writing the Benchmarking Perl talk I'm giving tonight), I think you're benchmark isn't doing anything at all. Your code doesn't see your arrays. When I change the number of elements in the lists, the numbers don't change. When I change the arrays to package variables, things make much more sense. There still isn't a big difference between the methods though, but at least you aren't running a no-op 4 million times a second. :)

Another update: I featured this node in my UniForum talk tonight: Benchmarking Perl.

--
brian d foy <brian@stonehenge.com>
Subscribe to The Perl Review

In reply to Re: Benchmarking the block and list forms of grep by brian_d_foy
in thread Benchmarking the block and list forms of grep by grinder

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.