Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re^5: A list assignment gotcha (Updated)

by LanX (Saint)
on Jul 31, 2020 at 02:20 UTC ( [id://11120108]=note: print w/replies, xml ) Need Help??


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.

  • a nice syntactic sugar which does the job in pure Perl and stays fully backwards compatible.
  • speed it up in XS for newer versions
  • if it becomes popular, consider including it into CORE.

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.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (6)
As of 2024-04-18 10:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found