Skip to main content



Hello!

Anonymonk here, due to personal info. I've been primarily a Perl programmer since (approximately) the dawn of Perl 5 (with a B.Sc.), with some systems and embedded programming along the way. Over 20 years in software dev, then I was forced to take a 10 year break due to illness. I'm doing a little better, but I'm having trouble staging a comeback tour. I could use a little advice.

For starters, it's been long enough that almost all of my previous contacts have moved on, and the ones that haven't, well they'd want me to jump back in to management, which is not something I'm really ready for, nor do I want to go there anyway. Apart from that, the gap in my resume is something I've felt it's best to be honest about; though it is still a huge gap which raises reasonable concerns about whether my skills are still reasonably current and sharp. I've done a decent job of keeping up with new tech in the meantime, but I don't have a job I can point to and say, "look, I did that there". I have a few new modules on CPAN, but nothing that's usually super relevant.

I just want a nice, interesting development job, mostly using Perl, at or around the current market rate. Or a few fairly consistent part-time contracting gigs.

Freelancing sites like Upwork do not seem to even come close to a reasonable fee for service, at least based on the North American market. The very rare job there that *might* cover my power bill tends to be rare enough to not be worth the time to find, especially when 100 other people bid on it and lowball the amount anyway.

What do typical senior contracting/consulting rates look like for Perl devs these days? And for full time salaried, am I out to lunch with my expected range (depending on the job responsibilities and location) of about US$80-100k/year to start, based on NA market?

And most importantly, where do you all look for work now? LinkedIn seems OK-ish. jobs.perl.org gets a trickle of what it used to, but the quality of the posts there is still good, at least. The good news is I am not in a gigantic rush to find work (especially full time), but in a perfect world I'd get a base of relatively steady contract work so I can build myself up to full time over the next 6-12 months or so. Ideas?

submitted by /u/ansi_escape
[link] [comments]



If you need more while you wait, there's also the 2023 megathread.

Perl Advent site (calendar view)

Atom feed

submitted by /u/briandfoy
[link] [comments]



submitted by /u/briandfoy
[link] [comments]




was there ever a moment in history where they changed perl, then you either liked it, or got used to it, then they reverted the change, and now you reminisce about what iffs? what iff i could use that ex-feature `say"?now"`? (in the relative sense, because the absolute sense is also relative in accordance with the relative state formulation of quantum mechanics; this causes a paradoxical conundrum in temporal mechanics, and linguistic communication, to name an interdisciplinary couple) preparing for perl 7 was re preparing for def-alt (definitively alternate) defaults (unfaulted)

now i want a context-sensitive supersigil; where a single particular namespace collapses the symbolic waveform, otherwise it's like $ is a superposition between doubles, strings, undef, and whatnot (the next step is entangling variables, and functions; followed by syntax, and semantics; ending in real qubits, where we only know they are programmable matter, not what calculations they compute, but that's where quantum teleportation comes in, where we don't know where it comes from, because it's indistinguishable from the bootstrap paradox, because you need bugs to debug bugs)

submitted by /u/skul_and_fingerguns
[link] [comments]




Announcing the presentation of the module Task::MemManager which facilitates the management of memory for multi-language applications. Will be discussing the module on Dec 18th mstdn.science/@ChristosArgyrop… The presentation will include an application in which the same data was successfully processed in x86_64 Assembly, C and PDL. Surprisingly working with Assembly required the least amount of glue code (gulp).

(in the meantime you can find it in MetaCPAN)

submitted by /u/ReplacementSlight413
[link] [comments]



There is a 13 year old CVE for the CPAN perl module Crypt::DSA which is used as part of Crypt::OpenPGP.

I found it this morning and reported it, to get a reply that a CVE was assigned in 2011 and a patch offered in 2013 but the module has been abandoned by the author and the unpatched version is still on CPAN.

rt.cpan.org/Public/Bug/Display…

The flaw only affects platforms without /dev/random and the 2013 offered patch is to just break the module completely for platforms without /dev/random.

Given that Module::Build recommends Module::Signature which needs Crypt::OpenPGP that in turn needs Crypt::DSA it bothers me a bit that the insecure version is still on CPAN and that the only patch I can find breaks Crypt::DSA on Windows and other platforms without /dev/random.

A) Would an actual perl coder with access to a Windows environment for testing mind patching the module to use something like Bytes::Random::Secure that is cryptograpgic quality yet also works on platforms without /dev/random? Honestly I don't even see a need for Crypt::DSA to access /dev/random itself, it should call another plattform-independent library desined to spit out random bytes to get the random bytes it needs.

B) Why is it that a module with a known flaw over 10 years old is still completely unfixed on CPAN, and is there a collection of patches for such issues somewhere that I don't know about that people use to patch old distributions on CPAN that are abandoned but are still needed but have security issues?

submitted by /u/AnymooseProphet
[link] [comments]




I'm a regular user of GIMP in the office and have noticed that it only comes with scheme or python for automation/batch scripts. I've read that perl was once upon a time included. I've scoured the internet looking for guides and information but am finding posts and pages from over 10 years ago which are massively out of date. Is there a modern guide anywhere that can talk me through installing it (if it's still even possible)?

I want to try my hand at perl and translate some of the scheme and python scripts I've written. I know it still works with Imagemagick and excel so I can re-write some of my powershell 7 and bash scripts.

Technically I don't need to do any of this but for some unknown reason I want to give perl a try 😀

submitted by /u/Bullfrog-That
[link] [comments]









There are a lot of ::Tiny distributions on CPAN that implement the most needed features of whatever (e.g. YAML::Tiny and Module::Build::Tiny) in much smaller and faster to run-time compile modules. It seems that most of the time, accepting the reduced feature set is a good tradeoff for the reduced runtime bloat.

This got me thinking, with how massive CPAN is, containing tons of distributions that implement the same thing in different ways, often resulting in code bloat where Distribution A has dependence B that does Fubar API one way, and Distribution A also has depencency C that doesn't do Fubar API but has a test that needs Dependency D that does Fubar API another way, and so on.

Could we maybe get a "CPAN Tiny" that is a subset of CPAN without all of the massive redundancy bloat? Distributions that go into it can only use Core and/or other "CPAN Tiny" distributions and can not have redundancy. The dependency bloat is major drawback of Perl.

Sometimes to meet one dependency (especially if running tests), well over 20 dependencies with a lot of them having redundant purposes are needed. It's madness. Especially since packagers don't always properly specify runtime dependencies meaning after that big mess is installed, you find you need even more because some dependencies were left out. It's a mess that makes me want to just look for Python solutions.

submitted by /u/AnymooseProphet
[link] [comments]



Over the last two decades plus, I have used multiple queueing modules in perl. Some of them are:

I'm sure that there were others, but the are the ones that come to mind.

I am currently using Forks::Queue with a SQLite back-end in a personal application that runs in two separate processes. The first is a server that pulls URLs from the queue and downloads them using yt-dlp. The second is a client that grabs URLs from the clipboard and places them in the queue. Both processes run on the same Debian 12 instance. The two characteristics of queueing that led me to select Forks::Queue were: 1. works across processes, 2. persistent over stop/start.

In general, Forks::Queue has worked for me. In the last month or so, I have observed an annoying behavior. Maybe it existed before and I didn't remember it or maybe it is due to a few changes that I have made to add an additional capability to the application. When I first start the server, it works fine until the client loads the first entry in the queue. The server crashes when reading the queue with "I/O Possible" display on the screen. When I restart the server, it then reads the entry and processes it without problems. Subsequent entries are also processed without problems.

Through logging, I have able to localize the failure to the dequeue-nb() call that reads from the queue. Enables Forks::Queue debugging with the environment variable FORKS_QUEUE_DEBUG also does not reveal anything. Neither eval nor the new feature 'try' will catch the error. Searches in Google, none of them related to perl, suggest that the problem is somewhere in the bowels of the OS's I/O routines.

For a one off personal project, I can obviously live with this; however, everytime that I encounter it is grates on me.

As such, I am requesting recommendations from your experiences for alternatives to Forks::Queue.

The requirements are:

  1. Supports general queueing methods (a la Thread::Queue like API)
  2. Works across processes
  3. Persist over stops and starts of processes

While not pertinent to my immediate needs, I would like for it to be fairly fast. The current application has no need for speed but uses in the future could. Additionally, it would be nice if the module handled serialization and deserialization of arrays, hashes and blessed objects but this can easily be accomplished with a wrapper function.

Thanks in advance for your help! lbe

submitted by /u/LearnedByError
[link] [comments]



There is a Dancer2 application accessible through mod_proxy via Apache2. How can I access the HTTP headers from Apache in Dancer? Thanks!

submitted by /u/mestia
[link] [comments]




I am on Windows 11: with Strawberry Perl

I have been trying to get this working on JetBrains IntelliJ with an extension and with Microsoft Visual Code with extensions. (Apparently the Perl Language Server has issues running in Windows. At least from the documentation I found, it recommends running it all i the WSL2)

In some langues the code editor can offer you guidance with what parameters a function may want

So if I type in

lc <$string> DBI->connect($data_source, $username, $auth, \%attr); DBI->connect($data_source, $username, $auth, \%attr);

DBI-> (I would like a guide here to show me what functions and what not available)

DBi->Connect(

It would show DBI->connect($data_source, $username, $auth, \%attr); For instance

Now JetBrains if I control click on an object or function it pulls up the sourcecode (I think) for it in a new editor window. This is helpful but far more intrusive and slow.

I would expect an argument may be that it is difficult with Perl to know exactly how many parameters a function can take. I can see that. However in Perl documentation there are usually a few example shown. Even linking those would be great.

submitted by /u/NoeticIntelligence
[link] [comments]





I just added a "migration guide" of sorts, for rewriting code from classical Perl style to Object::Pad, perhaps as a first step towards using the new feature 'class' syntax of Perl 5.38 onwards.

metacpan.org/dist/Object-Pad/v…

submitted by /u/leonerduk
[link] [comments]




I had been perusing the perlguts documents and there is a strong warning against allocating memory with eg alloc for use in C code that interfaces with Perl suggesting that buffers be allocated with Newxs (or equivalent) even if they don't leave the guts. What is the base of this statement?

I am trying to understand whether conflicts would arise the way memory is managed through the MMUs working with the OS nowadays. Theoretically it shouldn't lead to any issues as the OS would not release memory that has been allocated before (even it has not been mapped by the process). Unless one were to deallocate memory using facilities different than the one used to allocate the memory in the first place one should be OK to mix allocators as they have different performance for different patterns of memory use? Am I missing something?

submitted by /u/ReplacementSlight413
[link] [comments]









Hey guys! Im completely new to the community and know nothing of Perl, im a third year student of Software Engineer and I chose to write an essay (about 10 pages) about this exciting programming language. Id love to get some help as I am completely lost. What are some main points that I cant miss? What is Perl most used for professionally? What are some similar languages and what are the key differences between them? Any of this helps or if anyone has any ideas, im lost here! Its due like next week, no big rush

submitted by /u/Lete_Salas
[link] [comments]





I read the man page and I tried searching, but either my search skills have significantly deteriorated or search engines have, because I have trouble now finding any technical answers on google/etc regardless of the question.

With MakeMaker, one can set the CFLAGS with OPTIMIZE="whatever" as an environmental variable when running perl Makefile.PL

It then gets put in the generated Makefile

With perl Build.PL which does not use make I can not figure out how to do the equivalent.

It must be simple, I just can't find it.

Thank you for suggestions.

submitted by /u/AnymooseProphet
[link] [comments]




I decided to open an account here after seeing so many posts, all with the same characteristics:

  • Corinna is great
  • It will happen
  • This post is at least 3 years old

What’s going on? Why is implementation so slow? What can be done to help?

I see many discussions and many people holding things back with condescending arguments and fear of change. It’s clear (and if it’s not clear to the kind reader, then I think there’s a problem with you) that Perl is in trouble and dying from a lack of new developers. One of the main reasons is the absence of a decent object system, and a native one, not a module.

So much has been said about Corinna, so much work has been done, and yes, it’s great as it is, but it’s experimental. Over the past year, we’ve gained what — new writers? Where’s everything that was planned? Destruct blocks, custom constructors, custom readers and writers, :common, etc.

To make it popular, we need it. We need more people using it, and for that, we need it in the language — not as an experimental feature. So much time has been invested in decision-making, but no language is perfect. We just need it. It doesn’t have to be perfect.

submitted by /u/RegexSorcerer
[link] [comments]



TL:DR I'm in the process of writing a 'long now' document packing system, built to convey my and my descendants digital family archives into 24nd century(1). Looking at IT history I see that I can't rely an most things 'being there' in the decades to come, developers come and go, communities disperse, operating systems and CPU architectures change so old binarys have to be nursed along with emulators (Things fall apart; the CentOS cannot hold...). Taking a really pessimistic view I think only ASCII(+UTF-8) and HTML made of basic paragraph, tables and hyperlinks to be so deeply embedded that future software will need to be backwards compatible (and failing that can be simply be converted to UTF-64).

So I'm looking for a minimal Perl source code distribution that someone in the after the Death of Perl (Film at 11) can compile to extend the life of my codebase without having to rewrite it.

Longer version
I'm trying to minimize dependency's by writing scripts that build a ultrabasic static HTML website accessible via webserver, filesystem (and future AI). As a simple website it can be copied to archive.org as another strand of preservation (though storing it as a .zip, the wayback machine does bad things to the underlying structure of stored websites).

I'm working on the base assumption that my descendants will be non technical folk, able to run the command line file import and site building scripts with little understanding of how they work or how to maintain them. So I have a site built from data in easily editable textfile and the Perl code to use a minimum of CPAN modules. One day Perl may fall out of use(2), on that dark day they won't be able to update the collections, but since it's all HTML everything remains accessible and easy to copy forwards

However what I can do is throw a bone to a geeky decedent (or paid developer). So I document the system and surround the import and building scrips with a test framework so they can replicate it in their own pet language. I can also help by adding minimal a Perl source code distribution (and make sure the few modules I use are written in pure Perl and work with it). So when we see the end of ARM/IBM they could go for a recompile rather than a rewrite.

PS the obvious answer is pack it in Docker or the like, which has two problems 1) Docker et al isn't stable in the 'long now' 2) I'm aiming at a demographic who are only able to run a command line (that has been written down for them), copy a file system and can't be bothered to work out how to set up Docker.

(1) this is hubris, but I know for a fact that if I do nothing everything is certain to end up in /dev/null
(2) so could Python3 (botching it's jump from 3 to 4 in the same way it botched 2 to 3), or any language could fall by the wayside. How long will COBOL hang on in banking?

submitted by /u/octobod
[link] [comments]










I just uploaded a video I'm calling "You've been lied to about PERL" that I was hoping to get feedback on. I'm not sure if I'm going to leave it on youtube - I'll probably either replace it with a v2, or make it available as paid content when I do somewhere. Either way, it's intended as a crash-course for people who are either coming from shell scripting, or know another programming language, so I go quick, and I don't cover everything.

I think the video is a success if it gets people curious about perl, so I wasn't necessarily shooting for the most polished thing in the world. That said, if there's something critical I didn't include, or any feedback you have, I'd love to hear it. It's about a 90 minute course, so you might want to skip around, or 2x the speed, or who knows put it on in the background as ASMR.

Here's the link: youtu.be/TDV2ACy-oaU

submitted by /u/nickbernstein
[link] [comments]




I need to test my module on i686 Perl without 64bit ints. I turned up an old Raspberry Pi 1 with a 32bit OS and even that has support for 64bit ints. How far back do I have to go to get something I can test against like I'm seeing in my CPAN testers failures?

Or is that such an uncommon configuration that I shouldn't even worry about it?

submitted by /u/scottchiefbaker
[link] [comments]