Skip to main content






Any one using WWW::Mechanize::Chrome? I gave it a try yesterday on a personal scraping project and my results were hit and miss. I realized that I installed with cpm which does not run test by default. I downloaded it with cpan and manually ran the make and make test. I received dubious responses from the first test all the way to 60 and the testing locked up on t/61-mech-download.t. I found literally 160 chrome processes zombied.

This was run using perlbrew 5.40 on an updated Debian 12 box.

Anyone else seen something like this?

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










use DDP; use DateTime::Format::Strptime; my $strp = DateTime::Format::Strptime->new( pattern => '%m/%d/%y %H:%M', time_zone => 'Europe/Rome', ); for my $date ( "3/25/06 2:44", "3/26/06 2:44" ) { my $dt = $strp->parse_datetime( $date ); p $dt; } 

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


I have code like this: my @f1 = ($from =~ m{/[^/]+}g); my @f2 = ($to =~ m{/[^/]+}g); Where ($from, $to) is also aviable as @_. How would I make this into one line, and so I don't have to copy pase the reuse expression. IIUC, map can only return a flat array, or arrayrefs, which you cannot initalise the values with.

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









Inspite of bash being the main Linux "scripting" language I have never liked it much, always forgetting the syntax.

It comes up where regular expressions are concerned, seemingly the one with a good standardized system of regular expression syntax.

Regardless of how archaic or passe it is, once mastered would Perl be a good fit for that need?

I know about Python and Ruby, but if I have no particular interest in AI.

Could Perl be it, once mastered, or could that be Awk?

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




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


The Perl Data Language (PDL) has its own Advent Calendar apart from the Perl Advent Calendar.

PDL Advent site (calendar view)

RSS feed

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







Self-awareness disclaimer: These are just my thoughts, I claim no authority. I have not participated in any of the purported fierce interpersonal battles that have occurred.

But I'm not an indifferent bystander. I am a long-time Perl programmer, which simply means that I have been programming in Perl =>> 5 <<= for a long time. ^_^

I do think that there should be a "next-gen" Perl. I do think that it should have a clear designator. (This is largely a sociological argument; programming is a social phenomenon.) Be meaningful as a reference to an important and elegant set of new features, attract new people, keep being awesome.

I understand that there is a tension between the core maintainers (who want to elide unnecessary effort) and people who want Perl "next gen" to have a new label (historical marker, presence identifier). Both sides have a good point. Can we not simply do both ?

Can Perl can't be absolute Perl with a market label that matches "[A-Z0-9]" ?This doesn't need to clutter the code. Let the core maintainers make theirs jobs easier. Let 7 , 8 , 9 , 10 , 11 be possible market-facing labels. I understand the allusion to "42" and I am a D. Adams fan, but I see more advantage in my set:

7: puts the "6" into the past, is a coherent progression, and is a cool prime number 8: puts both "6" _and_ "7" into the past, and can be tilted to represent Infinity 9: a numerical stretch for the label, but goes to Infinity + 1 \^_^ 10: the power of base 10 and other such marketing possibilities 

I have played with Raku. I'm happy to watch it evolve, there are interesting approaches in the language. I'm happy that Perl and Raku are in the same family. I really am excited about Object::Pad and Corinna.

If I am completely wrong in my musings, please feel free to eli5 -- since this is reddit. ^_^ I confirm that I have indeed been at least 5.

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



Should I fork the cpan script? · Issue #187 · andk/cpanpm submitted by /u/briandfoy
[link] [comments]


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]



Prompt engineering is not dead—solving a Perl parsing issue with generative AI submitted by /u/OvidPerl
[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 https://mstdn.science/@ChristosArgyrop/113581044054775371 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.

https://rt.cpan.org/Public/Bug/Display.html?id=71421

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]



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





See announcement (blogs.perl.org). The website is open for registration.

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



https://www.olafalders.com/2021/06/30/cpan-bus-factor/

submitted by /u/davorg
[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]



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