Skip to main content


@Perl Happy 36th #birthday to the #Perl #programming language!

v1.0 then:
“Perl is kind of designed to make #awk and #sed semi-obsolete […] The language is intended to be practical (easy to use, efficient, complete) rather than beautiful (tiny, elegant, minimal).” https://github.com/Perl/perl5/releases/tag/perl-1.0

v5.38.2 now:
“Perl is […] now used for a wide range of tasks including #SysAdmin, #WebDev, network programming, #GUI development, and more.” https://perldoc.perl.org/perlintro#What-is-Perl%3F

This entry was edited (11 months ago)

reshared this

in reply to Mark Gardner

I remember first encountering Perl as Perl3, just before Perl4 and the Camel book. I remember looking at the crazy sigils and deciding, "this is it, the first new language I don't bother to learn."

6 months later, I had learned.

30+ years later, the majority of my working life continues to be spent manipulating those sigils. @rrays and $calars and h%shes FTW!

reshared this

in reply to Dragon-sided D

@dragonsidedd “Sigils have many benefits, not least of which is that variables can be interpolated into strings with no additional syntax. #Perl scripts are also easy to read (for people who have bothered to learn Perl!) because the nouns stand out from verbs. And new verbs can be added to the language without breaking old scripts.”

—‘Programming Perl’ by brian d foy, Tom Christiansen, et al.

#KindleQuotes

reshared this

Unknown parent

Mark Gardner

@timb_machine Perhaps @javirln wrote @onthisday in #Perl and naïvely used its `localtime` or `gmtime` functions’ month results in the range 0 through 11: https://perldoc.perl.org/functions/localtime

Thus posting a month early: https://mastodon.social/@onthisday/111432097670918808

Anyway, I cite my sources. The Perl history records version 1.0's release as December 18, 1987: https://perldoc.perl.org/perlhist#THE-RECORDS

And the (migrated, natch) perl-1.0 git tag is dated December 17, 1987: https://github.com/Perl/perl5/releases/tag/perl-1.0

in reply to Mark Gardner

For me, it *did* replace awk and sed. Not to mention a goodly portion of the C and Bourne shell I was then writing.

Mark Gardner reshared this.

in reply to Steve Jones

@sjfloat When you get tired of escaping #shell metacharacters in your #awk and #sed pipelines, when you get tired of inventing new ways to pass structured data between small tools as text streams, #Perl is there.

Of course, you can take that last point too far. See #PowerShell or even #jq, where half the “fun” is marshalling *between* bespoke data structures.

Perl reshared this.

in reply to Mark Gardner

My usual practice at the time, was to begin in bourne shell. If the complexity became unwieldy, I'd stick an "__END__" near the top and start moving things up, porting as I went.
in reply to Adrian Cockcroft

I hope your #awk script only uses the subset supported by a2p: https://metacpan.org/pod/App::a2p

Also, it hasn’t been included with #Perl for eight years. @leont has been looking for a new maintainer for three.

This entry was edited (11 months ago)

Perl reshared this.

in reply to Mark Gardner

Yup, matches my experience.. I went from writing little C programs to do stuff, to writing awk scripts, and then trying this new (to me) language called Perl to write my scripts.

Hmm .. it's pretty good, like awk, but without the limitations. Oh, and there's a local user group that meets monthly? I should join.

25 years later, still here.

reshared this

in reply to seism0saurus

The #Perl 5 Raptor is @creativecommons CC-BY-SA 4.0 licensed by @kraih, available to anyone under the same terms with credit: https://github.com/kraih/perl-raptor

The camel illustration is an @OReillyMedia trademark. No one else can use that image, nor use any camel on their Perl books.

@PerlRakuFoundation allows specific usage of their onion trademark: https://www.perlfoundation.org/trademarks.html

This entry was edited (11 months ago)

Perl reshared this.

in reply to Mark Gardner

Wow - was not aware that one of my favourite word processing tools is already 36. Happy birthday!

@mjgardner

@Perl

reshared this

in reply to Mark Gardner

Those memories:

"/* A string is TRUE if not "" or "0". */
#define True(val) (tmps = (val), (*tmps && !(*tmps == '0' && !tmps[1])))"