http://qs1969.pair.com?node_id=11131779


in reply to Re: Perl Contempt in My Workplace
in thread Perl Contempt in My Workplace

..., Databases, ...

PostgreSQL, which is mainly a C project, has in recent years (!) adopted tap + perl for testing, and total perl files (*.p[lm]) have grown to several percent of the total lines of code in the tree.

Replies are listed 'Best First'.
Re^3: Perl Contempt in My Workplace
by karlgoethebier (Abbot) on Apr 28, 2021 at 09:14 UTC

    And there is PL/Perl

    Update: Linked to current version of PL/Perl

    «The Crux of the Biscuit is the Apostrophe»

      thanks karlgoethebier! I was not aware of this. PL/Perl can return hashrefs and arrayrefs too! This removes a lot of boilerplate from scripts and puts it exactly where it belongs to: in the guts and out of sight.

      Update: the following caveat does not apply to the recent versions of PL/Python. See nodes below.

      On the other hand, it offers something similar for python but with this caveat:

      As of PostgreSQL 7.4, PL/Python is only available as an "untrusted" language, meaning it does not offer any way of restricting what users can do in it. It has therefore been renamed to plpythonu. The trusted variant plpython might become available again in future, if a new secure execution mechanism is developed in Python. The writer of a function in untrusted PL/Python must take care that the function cannot be used to do anything unwanted, since it will be able to do anything that could be done by a user logged in as the database administrator. Only superusers can create functions in untrusted languages such as plpythonu.

      bw, bliako

        I can't find that in postgres docs, so it looks like you copied that from docs of an old version (version 9.4 is not even supported anymore) (this particular content is still true, though). Annoyingly, google often serves up old pages before more up-to-date ones.

        (There is a 'current' link on top of every postgres doc page, and a link for all supported versions, as well as a link into the docs of the development branch, at the moment 14devel -- and btw: 14beta is expected in a few weeks)

        Ah well...