blogs.perl.org/users/oodler_57…
Christos Argyropoulos, MD, PhD. (you know him here!) is our moderator for this virtual event, which is December 18th, 2024 - Perl's 37th birthday! At this event we will be announcing our Summer 2025 plans, which will include a 3rd Issue of the SPJ.
We have author 6 committments from some very exciting topics, but we want more! The Summer Issue has 8 authors and is nearly 150 pages. We are looking to double the number of authors, doubling the number of pages is going to be a stretch 😀.
Click here to submit your paper proposal.
Note:
In case this was not clear, I stated it so in this most recent post at BPO:
If you ever wanted to be a published Perl author, here is your chance - the Science Perl Journal issues have their own ISBNs, papers will be getting their own DOIs, and all contributors are listed as co-authors of the Issue in which they appear.
You may reach out to us on #science
on irc . perl . org
or on Dr. Adam Russell's very active and awesome, Perl Applications & Algorithms discord server.
submitted by /u/OODLER577
[link] [comments]
Hello. I have the following program.
#!/usr/bin/perl sub print_user_input { my $input = <STDIN>; print $input; } sub mock_user_input { local *STDIN; open STDIN, '<', \"this is fake user input\n"; print_user_input(); } mock_user_input(); __END__ $ perl ./scratch.pl this is fake user input
I have successfully used the pattern displayed in the
mock_user_input
subroutine to test some user interfacing code I have. However I cannot wrap my head around how this actually works. What exactly does *STDIN
mean and why does it need to be localized? Why are we passing a string reference as the third argument to open
here? A detailed explanation of this code would be helpful for me. Thanks in advance. submitted by /u/nicholas_hubbard
[link] [comments]
Guys, Perl is famous for backwards compatibility. What is the oldest bit of perl use that is still relevant that you have heard of?
submitted by /u/saiftynet
[link] [comments]
I would like to know whether function which takes complex data structure of N depth, performs ANY changes on it. Should I Dumper() before and after, use tied hashes/arrays, or some other clever technique?
submitted by /u/mpapec2010
[link] [comments]
My client would like the package files in their project encrypted to protect the source code.
I have spent at this stage around 50 hours trying various cpan modules and its just not working, i also tried compiling an exe which also just fails.
Project is running apache2.2/perl5.10/mod_perl 2.0.4 and the majority of cpan modules fail to install for some or other reason
Please help me, are any alternatives to these methods, the documentation and online resources are slim.
The project runs on a local windows environment so the files are easily accesible.
The project is also a big mess so dependencies and libraries are a bit hard to pin down.
submitted by /u/Mowntain-Goat8414
[link] [comments]
Is there a common way or best practice, for creating a HTML "checkbox" form field and marking it checked?
This is what I started using:
print qq{ <input type="checkbox" name="fieldName" value="1" @{ ($fieldValues{fieldName}) ? 'checked="checked"' : '' } /> };
submitted by /u/ComparisonExtension3
[link] [comments]
One of the reasons I keep dropping hints about #perlffi , #pdl and #openmp is that one can literally have five multithreading frameworks in the same #perl application of a master process: 1) PDL, and FFI intefacing with 2) #Fortran coarrays, 3) Fortran openmp, 4) #c openmp and 5) #cplusplus #openmp. All these frameworks can share memory addresses for array and vector objects, and #perl aided by #PerlAlien makes the authoring of the high-level code a pleasure ! hgpu.org/?p=29403
submitted by /u/ReplacementSlight413
[link] [comments]
Click here to submit your abstracts for the Science Perl Journal, Winter 2024 Issue.
To Sign up for free exclusive access to the LIVE virtual conference will be held on Perl's 37th Birthday - December 18, 2024 - to sign up for free as an attendee, please join our mailing list (information and links will be sent out some days prior to the event).
The following lengths will be accepted for publication and presentation:
- Full length paper (10-36 pages, 50 minute speaker slot)
- Short paper (2-9 pages, 20 minute speaker slot)
- Extended Abstract (1 page, 5 minute lightning talk slot)
Don't wait, do this today! All published authors will be presenting their papers at this virtual 1 day conference being held on December 18, 2024; and attendance will be free for everyone but you must be signed up to our to get the link day-of (will be Google Meet). All talks will be recorded and posted to a YouTube Channel.
For those interested in getting published, but unable to commit a lot of time, please note the "Extended Abstract" option. It's a great opportunity to dip your toes in the waters leading up to the Summer 2025 Issue. Let us know what questions you have, we make this a very positive and edifying experience for everyone involved. It is our hope to be able to accept as many papers and posters as possible, as such our editorial process is designed to be rigorous, but friendly and supportive.
Imporant Dates (firm):
Deadline | Date |
---|---|
Abstract submission deadline | Monday, September 30th, 2024, 10pm PST |
Abstract acceptance emails sent | by Friday, October 4th, 2024 |
Draft full paper due | Monday, November 4th, 2024, 10pm PST |
Draft full paper feedback emails sent | by Friday, November 15th, 2024 |
Final full paper due | Monday, December 2nd, 2024, 10pm PST |
Final papers are "camera ready" for Journal | Monday, December 9th, 2024, 10pm PST |
Science Track Virtual Conference | Wednesday, December 18th, 2024 - time TBD |
\ all times in Pacific Standard Time (PST)*
Note*: This event is being sponsored by* Perl Community and its Science Perl Committee. It is not associated in any way with the "TPRF" or the "TPRC".
For more info, contact us over email at [science@perlcommunity.org](mailto:science@perlcommunity.org)
Perl Community Impact in 2024
List of Delivered 2024* TPRC Science Track Paper-based Talks
- Science Track Keynote & Diamond PERL Editor's Choice of Technical Excellence, Winner: Enhancing Non-Perl Bioinformatic Applications with Perl - Christos Argyropoulos, MD, PhD.
- Structure Based Structuring of Unstructured Data - Adam Russell, PhD.
- Chemometrics with Perl & Pharmaceutical Applications - Andrew O'Neil, PhD
- PerlGPT, A Code Llama LLM Fine-Tuned For Perl - William N. Braswell, Jr.
- Reasoning About the Rigor of Perl Programs - George Baugh - TPRC 2024
- Supporting Universal Dependencies in the Tree Editor TrEd - Jan Štěpánek, PhD.
- ASGS - A Real-Time Operational Storm Surge Forecasting Framework - Brett Estrade, MS
- Perl Cross-Compiler for Microcontrollers - Manickam Thanneermalai
Notes:
* We will be announcing plans for the Science Perl Journal, Summer 2025 Issue (and Science Perl Track) at the Perl Community Conference, Winter 2024. It will not be part of the TPRC in 2025.
* The final version of the Science Perl Journal , Summer 2024 Issue is being finalized and will be availabe for on-demand printing and in electronic format at Barnes & Nobles (we even have official ISBN numbers!). A seperate announcement will be made when it is available.
submitted by /u/OODLER577
[link] [comments]
How does the following work, specifically the triple equal sign print "hello" =~ y===c # -> 4
submitted by /u/Both_Confidence_4147
[link] [comments]
I want to process lines that start on "ROW<number> blabla" and increment the number by 2. Eg: "ROW13 There's a lazy brown fox" -> "ROW15 There's a lazy brown fox".
My first attempt:
perl -pe 's/(\d+)/$1+2/e'
works but replaces numbers EVERYWHERE not just after ROW, so I tried:
perl -pe 's/ROW(\d+)/ROW$1+2/e'
but this doesn't work at all.
submitted by /u/redzorino
[link] [comments]
The latest dev release of Type::Tiny made some changes to its behavior with tie.
Being the kind of person who enjoys playing with shiny new things, I went to see how I could wrangle it into core classes:
```perl use v5.40; use experimental qw<class>;
class Foo { use Types::Standard qw<Int>; field $bar :param; ADJUST {tie $bar, Int, $bar} }
Foo->new(bar => "baz");
Value "baz" did not pass type constraint "Int"
```
Neat!
submitted by /u/m_dango
[link] [comments]
[This article](dev.to/jj/creating-new-perl-co…) tells you how to use [this repo template](github.com/JJ/perl-composite-a…) to create your own. For instance, one like [this one that matches the version in the examples to that in the repo](github.com/marketplace/actions…)
submitted by /u/Sea-Bug2134
[link] [comments]
There was a cool neon-sign-style sticker given out at TPRC 24 which has a dart board and a dart in the bullseye, and the dart board is on fire...just curious
submitted by /u/thelastcubscout
[link] [comments]
Kind of retired now after developing with Perl for the past 20 years, but I still maintain a large Perl code base as a hobby for a club. Just as well as there's little Perl work around in the UK.
The last straw was a mix of things, that `LWP` doesn't support `HTTP2` (so I have to `qx" curl ... "`), the syntax of destructuring a hash-ref, and that no one (in the club) but me knows (or wants to know) Perl, so there is no succession plan.
A large part of the site is Javascript, which made node-js the best migration target as I already half know it
For me, it's a worthy successor to Perl. Its actually quite similar. The language is already way too big (and getting bigger) so that you can look at someone else's code and not understand it 😀 And NPM is like CPAN, lots of similar modules, half of which abandonware, to choose from and you don't know which one to choose
Sure, some things are better... built-in curl (ie fetch/LWP) and convert to/from JSON, JSON like syntax for variables, destructuring objects, private variables and methods in classes, package.json (a config file)
And some much worse ... no `/x` on regex, no `statement if condition`, no auto-vivifying, no log4perl or template toolkit, no "-e file" ). It really pisses me off removing whitespace from regex knowing that /x will be added as a language feature one day. Yes I could of ...
But, overall, more things are better than worse.
In case you try it, even with a convert script, its a lot of work and a little tedious at times going through line by line
It would be great to have a version of Perl with JSON syntax for variables, but I guess, as it would break everything, it is too late.
To all those who have maintained Perl and CPAN modules over the years, THANK YOU.
submitted by /u/Loose_Potential6985
[link] [comments]
This project is moving along just fine. Below is the current leaderboard. It's not about personal module count, it's creating more awareness about Perl. Also, some of these APIs are actually pretty neat! E.g., there's a "card deck" API for card playing programs.
All are invited to participate. Please click here for the rules and to claim the API. This is a great way to get your first CPAN module published, which is a major milestone for any Perl programmer. It's also great for experienced devs to blow off some steam or hone their skills. If you're new to CPAN and need help, email me directly at [oodler@cpan.org.](mailto:oodler@cpan.org)
The runner of FreePublicAPIs has been extremely supportive of this effort. He even created a site API for us, and I obliged by creating a real Perl client for it!
I'd like to specifically request that anyone using any of the new Perl stuff like signatures or Corinna/class
to submit some as non-contrived examples of how they work or as proof of why people should use them. Here is a good summary of the new features in Perl 5.40 - give it a shot! I may even try something other than my Dispatch::Fu and Util::H2O::More modules, even though they makes writing commandline tools with subcommands and web API modules dead simple - TIMTODI!
Claimed | PAUSE | API Info | Module Name | Status | Completed |
---|---|---|---|---|---|
2024-08-28 | OODLER | kanyerest | Acme::Free::API::Ye | Completed | 2024-08-28 |
2024-08-29 | OODLER | chuck-norris-jokes-api | Acme::Free::API::ChuckNorris | Completed | 2024-08-29 |
2024-08-30 | OODLER | reddit-stocks | Acme::Free::API::Stonks | Completed | 2024-08-30 |
2024-08-31 | SANKO | advice-slip-api | Acme::Free::Advice::Slip | Completed? | 2024-09-03 |
2024-08-31 | SANKO | unsolicited-advice-api | Acme::Free::Advice::Unsolicited | Completed? | 2024-09-03 |
2024-09-01 | CAVAC | ip-geolocation-api | Acme::Free::API::Geodata::GeoIP | Completed | 2024-09-01 |
2024-09-03 | OODLER | dog-api | Acme::Free::Dog::API | Completed | 2024-09-04 |
2024-09-03 | SANKO | insult-api | Acme::Insult::Glax | Completed? | 2024-09-03 |
2024-09-03 | SANKO | evil-insult-generator | Acme::Insult::Evil | Completed? | 2024-09-03 |
2024-09-03 | OODLER | api | Acme::Free::Public::APIs | Completed | 2024-09-06 |
2024-09-06 | OODLER | keyval-api | WebService::KeyVal | Pending | |
2024-09-07 | HAX | ipify | Webservice::Ipify | Pending |
submitted by /u/OODLER577
[link] [comments]
Hey friends, a few weeks back we introduced SlapbirdAPM (an open-source Perl application performance monitor), and received some great feedback from the community! Today we'd like to announce that you are now able to track DBI queries in your applications (only available for Dancer2 and Mojolicious for now), regardless of your database, ORM, etc. Here's what it looks like! You can see the dancer2 code that generated these queries here. preview.redd.it/l2jvz1bne8nd1.… This is just one of the many monitoring features provided by SlapbirdAPM, hopefully you find them as useful as we do! And a reminder we have a *forever* free tier available for everyone! submitted by /u/ivan_linux |
Check out the latest version of String::Util and let me if you have any suggestions for other string based funcions I can add.
submitted by /u/scottchiefbaker
[link] [comments]
Since the language formerly known as Perl 6 has officially gone off on its own, has there been any effort to implement a true Perl 5 successor?
In my opinion, Raku tried to do too much with the syntax itself, scaled Perl's flexibility to infinity, and made itself unusable.
Perl 5 does not need much for it to become a "modern" language. Instead of extending the flexibility of the syntax, the direction for Perl 6 should emphasize standardizing core utilities to facilitate integration with modern workflows.
- Package/module management and import/export could benefit from streamlining
- Stronger LSP and debug/error tooling (Rust has spoiled me)
- "Prettier" auto-formatting for source code (For those 30yo system scripts, you know the ones I mean)
What would be on your wishlist?
submitted by /u/J_Stach
[link] [comments]
Just click the link: shell.cloud.google.com/?pli=1&…
System perl is 5.34. 5.40 work if you skip man::db
perlbrew install --noman -n perl-5.40.0
It was easy to run a Dancer2 app and view via "Web Preview"
submitted by /u/ktown007
[link] [comments]
I've been writing an example web application using Dancer2.
Well, I say I've been writing it. Actually, I've been specifying it and GitHub Copilot Workspace has been writing the code. It has been interesting (and, rather more successful than I expected).
I shall continue with the experiment.
submitted by /u/davorg
[link] [comments]
Hi. I want to update a perl module (Spreadsheet::ParseExcel) from v0.65 to v0.66. I've transferred the module on the target machine. However, "make", "dmake", and "gmake" are all not available as methods to install this module, neither is cpan. The machine is completely isolated from the internet and absolutely cannot be modified to connect. How would I go about updating such a module without using the usual installation methods? Essentially, my question is that can I replace the ParseExcel(.)pm file and ParseExcel folder manually with no issues? Appreciate any help.
submitted by /u/Coconut_Cove
[link] [comments]
Setup:
Perl v5.40
AlmaLinux release 9.4
Nginx
Spawn-fcgi
First of all I know there are better ways than using Spawn-fcgi and we are looking at some refactoring; until then we are seeing child processes forked with Spawn-fcgi die from time to time and I have not been able to figure out a way on how to catch them / troubleshoot what is going on/killing them
I have a big try/catch clause in the moment the call comes in
while ( my $q = CGI::Fast->new() ) { eval {
but its not really catching anything when the processes die. I do have the process ids but I cannot really correlate them to anything in the nginx logs. At the same time I would not expect for nginx to "kill" any fcgi processes or could it?
Any pointers much appreciated.
submitted by /u/kosaromepr
[link] [comments]
In the latest Canonical announcement for Ubuntu 24.04.1 availability, Perl is mentioned among a small list of other programming languages:
As the target platform for open source software vendors and community projects, Ubuntu 24.04 LTS ships with the latest toolchains for Python, Rust, Ruby, Go, PHP and Perl, and users get first access to the latest updates for key libraries and packages.
It’s also mentioned as well in the “Ubuntu for developers” use case:
Ubuntu ships with the latest toolchains for Python, Rust, Ruby, Go, PHP and Perl, and users get first access to the latest updates for key libraries and packages.
Note they call all those “cutting-edge software”…
This is quite unusual in the last few years, and the initial announcement for Ubuntu 24.04 in April didn’t mention it.
What is going on and what do you think?
submitted by /u/sebf
[link] [comments]
I wanted a quick way to convert 255.255.255.252 -> 30 and other netmasks... this works!
$mask =~ /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/ or next;
$cidr = 32 - (log(256-$1)+log(256-$2)+log(256-$3)+log(256-$4)) / log(2);
submitted by /u/sfxsf
[link] [comments]
I have been working as a freelance developer for the last 9 years, about 80% of that has been PHP based.
I just landed a big, possibly once in a lifetime client that has a just about 30 year old code base.
I am completely new to perl, I have done some crash course reading to understand syntax, operators etc.
For the most part I can read and understand the code, on my third day I discovered the architecture.
It's basically 4 systems in one root folder, each of those systems basically contain a package file and a index file which seems to contain the entire system within that that file.
There are references to templates (Template Toolkit) and other things outside the file but for the most part all the business logic is one file.
While going through this I realized there was non of the standards I had been accustomed to in PHP and other projects.
Archaic routing (basically none), the closest thing to a function an if statement that else ifs it's way down thousands of lines of code.
So I have some ideas to implement routing, modularity and probably convert the conditions to sub routines (we call these functions in my old club)
It's like take a journey back in time to an era that I was not around for.
With that being said, knowing what you know, what suggestions, secrets, tips or warnings would you be willing to share?
Edit: Great community! Who says perl is dead 😀 so many great resources, thank you so much! I will be spending a lot more time on this sub!
submitted by /u/Mowntain-Goat8414
[link] [comments]
Hi all! I have a bug in my script I can't locate and I'm sure it must be some silly thing.
I am using a SQLite database with a contacts table that includes a field for the date in which the contact was added or edited. This is a DATE type field defined as "editado" date NOT NULL
.
I search for a group of contacts by doing this (nomap
is a string field with name and lastname):
sub cntSearch( $srch ) { my @result = (); my $tosrch = $srch; $tosrch =~ s/([\\%_'"\[\]])/\\$1/g; # LIKE no admite $dbh->quote() $sth = doSQL( "SELECT * FROM contactos WHERE nomap LIKE '%$tosrch%' ORDER BY nomap" ); while ( $hr = $sth -> fetchrow_hashref() ) { utf8::decode( $hr->{nomap} ); push @result, $hr; } return @result; }
At this point, if I read
$hr->{editado}
, I get the string I want (a date in the YYYY-MM-DD format). But when I do this:my @cntlist = cntSearch( $srch ); for ( @cntlist ) { my ( $codigo, $nomap, $ref, $editado ) = ( $_->{codigo}, $_->{nomap}, $_->{referencia}, $_-->{editado} ); }
the variable
editado
gets the value 1.The actual code is more complex but this is the gist of it and I think the other stuff is not related.
Any advice on this would be appreciated!
submitted by /u/elbitjusticiero
[link] [comments]
Perl was (and still) is used for system administration to this day. If you have professional system administration experience what have you seen Perl used for in sysadmin practices the most?
When would you recommend it? When would you not recommend it and what would be the alternativein which case?
Do you still see coworkers and yourself using Perl for such tasks. I ask because I'm confused as to how Perl stands up as a system admin tool compared to other options in modern times.
submitted by /u/fosres
[link] [comments]