in reply to Re^4: A list assignment gotcha (Updated)
in thread Not understanding 2 sentences in perldoc

> will cause problems if used in inner loops

performance won't be great unless implemented in XS.

But that's the way I would implement new features in Perl.

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

  • Comment on Re^5: A list assignment gotcha (Updated)

Replies are listed 'Best First'.
Re^6: A list assignment gotcha (Updated)
by jcb (Parson) on Aug 01, 2020 at 02:10 UTC

    Even with an XS implementation, you will still have the dispatch overhead for the overloaded operator. Eventually including it in core perl would allow the parser to resolve the dispatch at compile-time, but until then I wonder how long the list needs to be to make up that difference?

      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.