First of all choroba's code can be easily sped up by replacing the ->new with a direct bless

Syntax is rarely about speed otherwise you would do it right away in assembler.

In this particular example speed ups could be implemented if multiple operations happen

Something like

speed { L ($x, $y) * 3 + [5,6] + L (@z) };

wouldn't even need XS to be efficient, the objects inside the block would return optimized Perl code which is eval'ed only once and then reexecuted inside an inner loop.

With Keyword::Simple° even the overhead of calling speed could be avoided by inlining the code at compile-time.

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery

°) which has an XS dependency but only needs Perl to be used.


In reply to Re^7: A list assignment gotcha (Speed) by LanX
in thread Not understanding 2 sentences in perldoc by Anonymous Monk

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.