"It's about writing scripts that no one can read or understand, so they can't fire you" - excerpt from a interview with a pearl developer, Walter Wallis
These x in 100 seconds series are really cool. One thing with Perl (have spent most of my career writing perl, but no longer) When accessing an element in an array or a hash, we use "scalar context" eg: my @items = (1,2,3); print "first item is: $items[0] "; Raku on the other hand uses the same sigil in all situations, so print "first item is: @items[0] "; would be correct
I would have to favor Raku there. you can also represent scalar numbers readably, such as 1_000_000. It has many, many special features, but like everything that is powerful, it can be misused.
Pio, from what little I know, yes. Especially if you are doing anything with language grammars. I haven't checked in on the language in a while, though.
@@StfuSiriusly Because we were programming in Perl, PHP, C++, JavaScript, etc, 20 years ago. So it'd have been nice to get these quick overviews of languages and their plus/minus back then instead of now after we've learned it all ourselves.
@@StfuSiriusly someone told me perl was his favorite ... and i did not bother asking why ... because i knew i would be more confused hearing his explanation. a picture is a thousands word. had this video been available back then might convince me to bite the bullet and learnt perl ^^
I accidently discoverd it when i was in my vscode making a new python file but instead of typing .py extension I typed .pl which displayed a little camel icon and then I googled "programming language with camel icon". That's how I found it lol😂
Yeah sure it was the programming community? And not the business managers who thought Java was the next hot thing and hired developers to write in that verbose monstrosity?
Yeah, Java's syntax is not the best that ever was. It's the JVM that makes the difference and it's the reason that Java is so successful. The JVM is just a fantastic engine that delivers on its promises.
A comment that clearly does not understand the difference between a scripting language and a systems language. Java adoption was a rebellion against C++. Python & Ruby adoption was a rebellion against Perl. ;) The Perl core had not gone after Perl 6, and instead addressed some complaints by the community, then perhaps Perl would still be in the top 10. :shrug:
@@_modiX I had to develop a new major application with modern technologies to replace 2 old COBOL apps. I had to convert data handled by these two apps (a huge amount of more or less structured data) so that they would fit in my new PostgreSQL database. I wrote several scripts in several languages to treat every line of old data, applying a lot of tests and transformations, to get lines that could be injected in a correct PG database with good indexes, primary and foreign keys, etc. PERL was by far the fastest and most reliable.
Hmm... former long time Perl programmer here ... I somehow doubt that Perl's main usage nowadays is CGI scripts. ... that time has passed. It is used a lot for sysadm scripts and what it's backcronym says: "Practical Extraction and Reporting Language". It's very useful for quickly processing some input to some output when bash/sed/awk are too cumbersome. - which was kind of it's original purpose.
Maybe moved to FastCGI or other protocols in more persistent environments, but still plenty of (new) websites/platforms being built in it. Things To Get Me is one of mine.
@@bluesquare23 Websites written in Perl don't have to be CGI. Preferable to use a framework like Catalyst (MVC pattern) with the Template Toolkit, or Mojolicious, or Dancer2.
@@bit2shift Just adding that the '-no_match_vars' avoided regex performance penalty in perl 5.18 and earlier. This was fixed in perl 5.20 so you can just "use English;" since then.
1:33 array element should be accessed by $nums[1] and hash element should be accessed by $friends{'Larry'}. @nums[1] is an array slice with one element and @friends{'Larry'} is a hash slice with one element and %friends{'Larry'} is a hash slice with one key-value pair.
Imagine perl developers fighting over if a variable should be "my" or "our" Declaring global variables with the keyword *"our"* is the most Russian thing I've ever seen
Perl, my first love in the programming language. After 17 years, I even find myself using it daily these days. Converting and refactoring a bunch of Perl and Python scripts over to Rust atm. Good stuff.
hearing rust always makes me happy lol. I love rust and this is my first time learning anything about perl and seems very interesting, but also way too complex for practical apps
@@theroboman727 ehh, Perl is all but dead, which is how I got this contract. A biologist showed up in my inbox one day excitedly saying, "hey, I see Perl on your resume! I can't find anyone who knows this language, and I'm doing some cool DNA analysis work, can you help?". I obliged, then proceeded to convince him if processing time is of utmost importance, we really need to be on Rust, so off to the races with Rust we go. And yeah, love Rust as well.
@@theroboman727 Rust's guidebook is basically the main reason why I fell in love with it. It feels like a friend guiding you to use a tool they create rather than a textbook telling you syntaxes and what not.
First major error at 1:26. Access of an array element is $nums[1] (dollar because the RESULT is a scalar). Similarly to access a field of a hash its $friends{Larry} not %friends{Larry}
@@divinecomedian2 What is this: "$a" -- answer it's a scalar, because it starts with a "$". What is this: "$b[20]" -- answer: it's a scalar, because it starts with an @. It's also one element of an array. What is this: "@b[20]" -- answer: it's an array, because it starts with an @. It happens to be a slice of the array @b that only contains the 20th element of @b. Perl6's "@b[20] is a scalar that is the 20th element of @b" is the confusing thing.
I don’t know why, but this language connects with me on a deeper level. I love the fact that Perl isn’t like every other programming language. It’s uniqueness is what makes it so beautiful. Graciously powerful.
I started my programming journey with Linux - Bash, awk, grep, regex, little bit of C, so Perl just clicks for me, but I guess it depends on your background.
1:33 ... sigil errors. Unlike other languages with sigils, in Perl they do not follow the type of the variable, but the type of the expression. So it's no @nums[1] or %friends{'Larry'} ... it's $num[1] and $friends{'Larry'}
Now, this looks so much better, comprehensive and far more entertaining than my 4-man 15 mins presentation on "Perl" back in my first year of college... Cool stuff!
There is a conceptual elegance to, say, Lisp, where no matter how different things are, they all look the same. But I tend to agree with Larry that in practice, that turned into "oatmeal with fingernail clippings."
Learning curve is *not* steep. It is shallow enough to get you writing simple scripts in a few minutes, but the learning curve can be somewhat long depending on how deep you have to go into the bushes to explore and use the many features and power it offers. And to use it *properly* so it avoids the points that people criticize it for.
I have forgotten everything I ever learned about Perl, years ago, _except_ that it was the biggest collection of hacks and dirty tricks I'd ever seen, and I loved it!
Perl programmer here. Interpreted is a bit of a misnomer... Perl is commonly known as an interpreted language, but this is not strictly true. Since the interpreter actually does convert the program into byte code before executing it, it is sometimes called an interpreter/compiler, if anything at all.
We can all agree that Fireship is the best programing youtuber. And he changed many lives by explaining lots of stuff. And a discord server where all thes people who value Fireship's clean explanations to join amd help each other!
I like the fact I can write code in Perl without worrying about white spaces and having to use an auto fill gui code editor that shares all my stuff with big data if I am not careful. Most of the core features you will ever need on a web server are built in, you have to import hardly anything. The Active State community is where people were nudged if you did not take the time to get a grip on all the concepts. This was written as a possible replacement for C, and it was so well done it largely has not changed in quite a long time. Hats off to Larry. Learn this and you will stop chasing frameworks such as JQuery (horrors?). CSS another language people complain about, there are no short cuts to writing code and testing it. You got to pick up an instrument and play it to confirm you learned anything. A lot people never will, then later lament why the properietary multi megabyte or gigabyte database layer sitting on top of everything is so expensive? Word.
one great feature you didn't mentioned and probably because is an obscure one, is that when you read any data that is not local, like data from the web, Perl throws always an error if you try to use it without parsing it with regex. Perl forces you to parse input with a regex, Perl called this "tainted variable" so to untaint it you use the regex, and this made sites written in Perl a lot more secure than with PHP, and for many people this was one of the reasons to make fun of PHP. The problem is that noobs still wouldn't know what to look for with the regex, but it helped them to find the documentation to avoid sql injections.
RegEx still breaks my braincells but man do I ever love Perl's syntax. I dont know what it is, but it just feels so well thought out. I learned a tiny bit of Perl when I read that PHP was influenced by it, and I immediately saw why and what. But I have not heared of Raku, gonna give it a look!
I love perl, is one of the reasons I chose ruby over python back in 2004 because the ruby man page says "inspired by lisp and perl" and that was a selling point to me.
I know everyone dunks on cryptic Perl one-liners, but that's a design decision. It makes it so system admins can copy/paste whole ass programs them into terminals.
As someone who is transitioning to an intermediate dev, it's so awesome being able to follow along with content like this and pick stuff up and process it while listening along and not pausing the whole time to digest some technical concept. I think I can add Perl to my CV now.
I really don't think it's worthwhile. I think that if you didn't realize it was useful, you probably aren't in a position where it will change your workflow. Maybe if you're writing crazy BASH scripts that are pushing the limits of the language, then you'd probably still choose something like Go long before it makes sense to use Perl.
@@bobDotJS Perl has the advantage of being self-included in Linux and MacOS - so if you just want to get things done and bash isn't good enough, Perl is indeed a good solution.
Nice video, it's great to see perl being explored and described concisely by popular content creators here on youtube. I made a similar video to this a month or two ago... yours is a LOT better ;)
In 2003 I was working to a telecom. There was one job that took 72 hours to complete. They put me on charge to optimize it. I was learning PERL, so I decided to give a try. It was already installed by default on HPUX. After all, the same job spent only 6 hours. In the end, they took a look in the code and said: "What the heck you used to write the script?" And they asked me to rewrite in ANSI C, because no one was able to understand it. 😂😂😂
Perl Advocate: But does you language have...Autovivification!?!?!?!? Average Developer: Well, considering that I haven't heard of that term until 1 second ago, no it doesn't. Perl Advocate: Checkmate, bitch.
It's actually not too difficult to get a Perl job. The reason they are highly paid is because most people are not looking for perl jobs yet companies have a bunch of legacy perl code. So they need someone to work on it. So once you learn perl you can be fairly confident that you will be able to find a good job :)
It's all about *supply* and demand. Economics 101. Most people just focus on demand as in "where are most jobs asking for" without considering that abundant jobs like JavaScript or Python also have the most supply of cheap programmers coming from populous countries like India. It's a crowded field out there and competition is intense for those.
The funniest part about Perl is that I have always associated it with the Camel. And a couple of months ago I learnt that the actual mascot is an onion. The camel is just from the O Relly book.
I learned programming in earnest with PERL back in 1995/96 (after limited exposure to BASIC on a C64 back in school in the 80s and some toy stuff with Turbo Pascal in the early 90s). I don't think, PERL was the best way to start, but I did some administrative and early Web stuff afterwards. PERL is still unmatched in the 'Q&D one-liner' department. Not sure what lead to its eventual decline: arcane "Sigil" variables? Half-baked OOP? 15+ year development of Raku successor? Probably all of them. And let's not forget that with Python you had a much more beginner-friendly language at the start of the 2000s.
Python sucks for string parsing. Perl is a lot easier with regexes being first-class citizens, sane string interpolation, useful operators like defined-or, and stuff like that.
@@flybackrs I kept hearing _regex_ thrown around and finally googled it. _What the fuck!_ I have almost no idea how I would begin to parse that. It literally looks like you facerolled around the keyboard or something. And these are.... useful? I... take it?
@@kindlin Just so you know, regular expressions were not invented by Perl. They are essential finite state automata used for text pattern matching. The UNIX/Linux/MacOS command *"grep"* stands for "general regular expression parser," a *basic tool* of UNIX programming. Perl just advanced the state-of-the-art of regexes. Python, Java and others based their own regex implementations on PCRE, and you should know that stands for "Perl-Compatible Regular Expression." YES, they are *hugely* useful and I couldn't even begin to tell you in a comment how much so they are. They are even used in text editors to find data in a file, that's how much they are used. So learn before you jump to judgement on something you don't know or understand.
Raku is even better than Perl 6, it's like the production ready version at the end of the line of prototypes. I've found difficult to reach a conclusion about Raku thought, just because it has everything and them some to it, it's a really really feature reach language, and although I don't like it in languages e.g. C++, just because the language is always surprising you no matter how long you've been programming in it, Raku seems to have done many many things right.
I started to maintain a 20 year old legacy server side web app written in Perl, which generates web pages by printing html to the standard output. An absolute nightmare
I remember from a vocational class where I learned Microsoft's Powershell. The instructor ranted about Perl for 10-15 straight minutes. The abridged version of this is "Now Powershell has some influences, one of them happens to be a programming language called Perl. Perl was created by a linguist, as in not-a -programmer background kind of computer scientist wannabe, who has some mild obsession with Unix shell commands and a deep obsession with another programming language called AWK. He pretty much merged his interests with C and some other popular languages. So you can see a very tiny influence of Perl in Powershell. The bigger point is that Perl is so unusable for anybody today to the point that its steep learning curve indirectly inspired other programmers to develop more approachable programming languages for the market today. So, thank you, Perl?"
The instructor you got was obviously an imbecile. My condolences. Perl's learning curve is actually quite shallow! You can write simple scripts within a few minutes. The learning curve, however, is *long* (not "steep"!) depending on how deep you need to go into the bushes for its more elaborate or powerful features. That's the *real* skinny.
I love perl and i hate how it's lost adoption. I am slowly migrating all my powerful perl scripts to hacky alternates that do less with more code and includes. Gah
Why do that? Perl is actively maintained with new versions released periodically which won't break backwards compatibility. And it comes installed already in Linux and MacOS. For systems where it is not installed, it can be easily set up with Homebrew.
Mainly used for CGI: Yup, the vast majority of websites I maintain at my job use HTML::Mason with Perl. I'm trying to write newer websites using more modern languages though.
Jesus, do the pages show their age using radio-carbon dating? I kid. I remember HTML::Mason from the early aughts but that’s millenia ago in technology development years. I saved a couple businesses a lot of money using Perl to double-check credit card transaction records. I’ve forgotten a lot since getting into Python.
I work on one of those myself. The thing is, if you have a massive number of pages and need to do HTML templating, and the templating/component system works and is fast, it doesn't really matter how old it is. The template engine doesn't care what html, css and js you're putting out, and if your whole setup is tuned well users will have no idea it was written before git existed.
Obviously we need a 100s for Raku. I had some other ideas recently for 100s. Free for you to use of course. * Clojure * Crystal * Scala And then maybe you could move on to build tools like make, basil, and Groovy? 👀
It's like describing pure beauty in 100 seconds. But hashes are a central feature of Perl, and you didn't even mention it, or the elegance that is Perl objects.
"It's about writing scripts that no one can read or understand, so they can't fire you" - excerpt from a interview with a pearl developer, Walter Wallis
visionary.
This guy is an actual genius
😂
That is under the assumption that I can understand my own code more than a month after I write it
"What happens in the 80s stays in the 80s... Except for Perl" - WW
Having “my” and “our” as what determines if a variable is local or global is really funny to me 😅
I guess every time you define a global var in perl soviet anthem starts playing...
Capitalist vs communist variable
@@klittlet Yes Comrade
Our variable ←_←
funny to US! *soviet anthem intensifies*
C: write once, compile everywhere.
Java: write once, run everywhere.
Perl: write once, read never.
just wait until you hear about APL
Confused every other time.
Python: write once, then rewrite it in Rust for blazing fast memory safe performance.
I do love python, though.
Correction: Java is write once debug everywhere
oh how true this statement is...
"What happened in the 80s stays in the 80s, except perl" - Perl poet
Even the terminator could not help it :D
Perl devs still use telnet BBS for social media
And mRNS vaccines.
Like that one SpongeBob meme
I’ve lived to see a programming-medieval literature crossover joke. I can now die in peace
Yes, I definitely want a language that has necromancy as a core feature
Bless being a keyword makes me think Perl is more a Priest build
These x in 100 seconds series are really cool. One thing with Perl (have spent most of my career writing perl, but no longer) When accessing an element in an array or a hash, we use "scalar context" eg: my @items = (1,2,3); print "first item is: $items[0]
"; Raku on the other hand uses the same sigil in all situations, so print "first item is: @items[0]
"; would be correct
I would have to favor Raku there. you can also represent scalar numbers readably, such as 1_000_000. It has many, many special features, but like everything that is powerful, it can be misused.
@@TheLostBijou "you can also represent scalar numbers readably, such as 1_000_000" As you can in Perl.
exactly, and this scalars with $ are 'perl way' as it always was! Is raku worth to learn at all, when we have Perl?
Pio, from what little I know, yes. Especially if you are doing anything with language grammars. I haven't checked in on the language in a while, though.
I was about to make the same comment. I do prefer the Raku way of doing things personally and actually really like Raku as a language
So grateful for these 100secs series... just what i needed 20 years ago :(
why? these videos are great but just show a very short over view. how would that have helped you 20 years ago?
@@StfuSiriusly maybe because he need an introduction to programming language to understand the language more easily.
@@StfuSiriusly Because we were programming in Perl, PHP, C++, JavaScript, etc, 20 years ago. So it'd have been nice to get these quick overviews of languages and their plus/minus back then instead of now after we've learned it all ourselves.
@@StfuSiriusly someone told me perl was his favorite ... and i did not bother asking why ... because i knew i would be more confused hearing his explanation. a picture is a thousands word. had this video been available back then might convince me to bite the bullet and learnt perl ^^
I accidently discoverd it when i was in my vscode making a new python file but instead of typing .py extension I typed .pl which displayed a little camel icon and then I googled "programming language with camel icon". That's how I found it lol😂
😂😂😂
Lovely story 😂 😂
The Perl language was so terse and minimal that the programming community rebelled by adopting Java.
Yeah sure it was the programming community? And not the business managers who thought Java was the next hot thing and hired developers to write in that verbose monstrosity?
@@aziskgarion378 Perl is still just a scripting language, writing big scale apps with it would be worse than with Java
When PHP 4 came out, I learned that and forgot Perl.
Yeah, Java's syntax is not the best that ever was. It's the JVM that makes the difference and it's the reason that Java is so successful. The JVM is just a fantastic engine that delivers on its promises.
A comment that clearly does not understand the difference between a scripting language and a systems language. Java adoption was a rebellion against C++. Python & Ruby adoption was a rebellion against Perl. ;)
The Perl core had not gone after Perl 6, and instead addressed some complaints by the community, then perhaps Perl would still be in the top 10. :shrug:
One of the most underrated languages. It saved me several times for big projects when it involved dealing with huge amount of data.
could you elaborate? Why was perl the best choice? Weren't there better alternatives?
@@_modiX I had to develop a new major application with modern technologies to replace 2 old COBOL apps. I had to convert data handled by these two apps (a huge amount of more or less structured data) so that they would fit in my new PostgreSQL database.
I wrote several scripts in several languages to treat every line of old data, applying a lot of tests and transformations, to get lines that could be injected in a correct PG database with good indexes, primary and foreign keys, etc.
PERL was by far the fastest and most reliable.
@@djcaesar9114 That's a great observation. I will keep that in mind for my future works. Thank you for your response.
@@_modiX you're welcome, if my experience could help fellow developers, it's great! :)
Same same!
Hmm... former long time Perl programmer here ...
I somehow doubt that Perl's main usage nowadays is CGI scripts. ... that time has passed.
It is used a lot for sysadm scripts and what it's backcronym says: "Practical Extraction and Reporting Language".
It's very useful for quickly processing some input to some output when bash/sed/awk are too cumbersome. - which was kind of it's original purpose.
Still lots of perl cgi based websites hosted at Pair Networks!
Maybe moved to FastCGI or other protocols in more persistent environments, but still plenty of (new) websites/platforms being built in it. Things To Get Me is one of mine.
@@bluesquare23 Websites written in Perl don't have to be CGI. Preferable to use a framework like Catalyst (MVC pattern) with the Template Toolkit, or Mojolicious, or Dancer2.
Please "use strict;" and "use warnings;" to make your code less error-prone
Shut up, buzzkill.
Don't forget `use English qw{-no_match_vars};` 😉
@@bit2shift Just adding that the '-no_match_vars' avoided regex performance penalty in perl 5.18 and earlier.
This was fixed in perl 5.20 so you can just "use English;" since then.
tacking onto that, if you declare a variable, go with `my` by default rather than assigning it out of nowhere
@@andresgz
Wait, that's real code?
I need to be running from this syntactic nightmare.
The "my" and "our" keywords is really amazing. Makes it easier to understand even if it's the first time hearing of this language
I like VOID. Oh wait its dumb as hell
The "my", "our" and "unless" are good ideas. You don't need to know them, but the moment you put your eyes on them you know what they mean.
It's been ten years since I've used Perl, but this video made me miss it. Great language
Same!
I like honestly how things can get convoluted, but simple once you know it
my $cin = ;
vs
my $cin = ;
less to type and achieves the same thing
1:33 array element should be accessed by $nums[1] and hash element should be accessed by $friends{'Larry'}.
@nums[1] is an array slice with one element and @friends{'Larry'} is a hash slice with one element and %friends{'Larry'} is a hash slice with one key-value pair.
Jumped here to comment on this also. A 'use strict' pragma might flag this compile time.
Also came here to say this ;)
Yep: it's a head-scratcher for every perl noob
This needs pinning
The sigil was wrongly omitted from the first `print` example too.
Imagine perl developers fighting over if a variable should be "my" or "our"
Declaring global variables with the keyword *"our"* is the most Russian thing I've ever seen
knew i would find this comment
Our variable kkkkkkkkkkk
I'm a perl developer, nobody uses our. Having variables in a global scope gets messy.
Soviet*
actually is USSR.
current Russia is pretty much a "my" country.
Perl, my first love in the programming language. After 17 years, I even find myself using it daily these days. Converting and refactoring a bunch of Perl and Python scripts over to Rust atm. Good stuff.
hearing rust always makes me happy lol. I love rust and this is my first time learning anything about perl and seems very interesting, but also way too complex for practical apps
@@theroboman727 ehh, Perl is all but dead, which is how I got this contract. A biologist showed up in my inbox one day excitedly saying, "hey, I see Perl on your resume! I can't find anyone who knows this language, and I'm doing some cool DNA analysis work, can you help?". I obliged, then proceeded to convince him if processing time is of utmost importance, we really need to be on Rust, so off to the races with Rust we go. And yeah, love Rust as well.
@@theroboman727 Rust's guidebook is basically the main reason why I fell in love with it. It feels like a friend guiding you to use a tool they create rather than a textbook telling you syntaxes and what not.
@Apex and PHP Do you have any recommendations for learning perl or more specifically for converting perl to python?
I gave up Perl for Ruby when Perl 6 was trying to come along. I build a major system in Perl, over 250K SLOC.
I've been looking forward to this one! Can we see Lisp and/or Clojure next maybe?
First major error at 1:26. Access of an array element is $nums[1] (dollar because the RESULT is a scalar). Similarly to access a field of a hash its $friends{Larry} not %friends{Larry}
shows how confusing the language is
@@divinecomedian2 What is this: "$a" -- answer it's a scalar, because it starts with a "$". What is this: "$b[20]" -- answer: it's a scalar, because it starts with an @. It's also one element of an array. What is this: "@b[20]" -- answer: it's an array, because it starts with an @. It happens to be a slice of the array @b that only contains the 20th element of @b.
Perl6's "@b[20] is a scalar that is the 20th element of @b" is the confusing thing.
@@divinecomedian2 "Confusing" as opposed to what?? How about this gem 👇
Apparently Python can't add:
python -c "print('=',0.6+0.7)"
= 1.2999999999999998 ❌(ouch!)
... whereas:
perl -e "say('=',0.6+0.7)"
=1.3 ✅
Long time perl user - no other language comes close to the regex power of perl.
Raku?
@@xoell388 Ha, I can’t move off regular Perl after 25+ years. Something about “teaching an old dog” ….
@@pirate21 I am keen to learn perl whatever people say
@@xoell388 sure, go for it. The best place to start is with the O’Reilly “ programming Perl” book.
@@xoell388 Good for you. Ultra useful.
"Swiss army chainsaw" alone made it worth watching.
I don’t know why, but this language connects with me on a deeper level. I love the fact that Perl isn’t like every other programming language. It’s uniqueness is what makes it so beautiful. Graciously powerful.
If you're unique doesn't mean that you're useful
Just love how there are often many ways to do the same
I started my programming journey with Linux - Bash, awk, grep, regex, little bit of C, so Perl just clicks for me, but I guess it depends on your background.
@@games4us132I guess you are not a sysadmin 😂
@@hansdegroot652So many ways to accomplish the same goal.
Perl: I'm the swiss army chainsaw of the internet.
Python: There should be one- and preferably only one -obvious way to do it.
In Perl, its TIMTOWDI actually, "there is more than one way to do it". Quite the opposite of the guidelines in the zen of python
And Python's "one way" will change in the next release, but it will be even more perfect and final than the prior way. (sarcasm)
Apparently Python can't add:
python -c "print('=',0.6+0.7)"
= 1.2999999999999998 ❌(ouch!)
... whereas:
perl -e "say('=',0.6+0.7)"
=1.3 ✅
this channel is the best-place to window shop tech stuff
1:33 ... sigil errors. Unlike other languages with sigils, in Perl they do not follow the type of the variable, but the type of the expression.
So it's no @nums[1] or %friends{'Larry'} ... it's $num[1] and $friends{'Larry'}
That is because $friends{'Larry'} is a *scalar* variable, and not an aggregate set like an array or hash (dictionary). Same with $num[1].
It hurts to see the absence of "use strict;" at the top of the file.
What is this, a crossover episode?
And maybe a "use warnings" if you're feeling frisky
If he did that, none of the other errors would work… ;)
The great thing about perl is that it's easy to write, fast, and remarkably useful. Larry Wall and his descendants did a great job!
I hope they some how get raku to mainstream
Perl in 100 secs... Where's the references? Where's the modules and packages? Love Perl, the most underrated and misunderstood language.
AMen
Now, this looks so much better, comprehensive and far more entertaining than my 4-man 15 mins presentation on "Perl" back in my first year of college...
Cool stuff!
Variable scoping with 'my' and 'our' keyword was pretty cool.
bless()
“Things that are different should look different”
There is a conceptual elegance to, say, Lisp, where no matter how different things are, they all look the same. But I tend to agree with Larry that in practice, that turned into "oatmeal with fingernail clippings."
kinda wild this fireship guy managed to convince everyone 2 and a half minutes is 100 seconds
I implemented a whole P2P network for a customer in perl. Don't regret any second.
Probably learned more about programming from Perl than any other language. That means that Perl is cool and I’m really old. ;)
wow this kind of blew me away. now i must learn perl.
Learning curve is *not* steep. It is shallow enough to get you writing simple scripts in a few minutes, but the learning curve can be somewhat long depending on how deep you have to go into the bushes to explore and use the many features and power it offers. And to use it *properly* so it avoids the points that people criticize it for.
I have forgotten everything I ever learned about Perl, years ago, _except_ that it was the biggest collection of hacks and dirty tricks I'd ever seen, and I loved it!
Perl is likely the most powerful tool in my toolbox.
At 1:35, it should be $nums[1], not @nums[1]. @nums is an array, $nums[1] is a scalar.
Perl programmer here. Interpreted is a bit of a misnomer... Perl is commonly known as an interpreted language, but this is not strictly true. Since the interpreter actually does convert the program into byte code before executing it, it is sometimes called an interpreter/compiler, if anything at all.
Even after all these years still love unless
We can all agree that Fireship is the best programing youtuber. And he changed many lives by explaining lots of stuff. And a discord server where all thes people who value Fireship's clean explanations to join amd help each other!
I like the fact I can write code in Perl without worrying about white spaces and having to use an auto fill gui code editor that shares all my stuff with big data if I am not careful. Most of the core features you will ever need on a web server are built in, you have to import hardly anything.
The Active State community is where people were nudged if you did not take the time to get a grip on all the concepts.
This was written as a possible replacement for C, and it was so well done it largely has not changed in quite a long time.
Hats off to Larry. Learn this and you will stop chasing frameworks such as JQuery (horrors?).
CSS another language people complain about, there are no short cuts to writing code and testing it.
You got to pick up an instrument and play it to confirm you learned anything.
A lot people never will, then later lament why the properietary multi megabyte or gigabyte database layer sitting on top of everything is so expensive?
Word.
Perl is the original "Write once, read never again" language
one great feature you didn't mentioned and probably because is an obscure one, is that when you read any data that is not local, like data from the web, Perl throws always an error if you try to use it without parsing it with regex. Perl forces you to parse input with a regex, Perl called this "tainted variable" so to untaint it you use the regex, and this made sites written in Perl a lot more secure than with PHP, and for many people this was one of the reasons to make fun of PHP. The problem is that noobs still wouldn't know what to look for with the regex, but it helped them to find the documentation to avoid sql injections.
“Rej-ex”, ah yes a Rejular expression... just like a jraphical image format
You've finally made it, it's time for APL in 100 seconds.
The matter of marketing. This is the great issue with Perl indeed.
RegEx still breaks my braincells but man do I ever love Perl's syntax. I dont know what it is, but it just feels so well thought out. I learned a tiny bit of Perl when I read that PHP was influenced by it, and I immediately saw why and what. But I have not heared of Raku, gonna give it a look!
You better don't..
I don’t know how regex works underneath the hood but man after learning it has saved me so much time when parsing strings.
RegEx is pretty easy, but you do need the proper resources to learn it.
@@HandcartRule46 any tips?
@@HandcartRule46 yes, pls enlighten us mere mortals good sir
I love perl, is one of the reasons I chose ruby over python back in 2004 because the ruby man page says "inspired by lisp and perl" and that was a selling point to me.
*If human beings evolved new organs as frequently as they do Javascript frameworks, you can bet the doctors would be Googling it too.*
wow!
In fact they actually do
I know everyone dunks on cryptic Perl one-liners, but that's a design decision. It makes it so system admins can copy/paste whole ass programs them into terminals.
As someone who is transitioning to an intermediate dev, it's so awesome being able to follow along with content like this and pick stuff up and process it while listening along and not pausing the whole time to digest some technical concept.
I think I can add Perl to my CV now.
Never knew Perl is this useful, I'll definitely have a look.
I really don't think it's worthwhile. I think that if you didn't realize it was useful, you probably aren't in a position where it will change your workflow.
Maybe if you're writing crazy BASH scripts that are pushing the limits of the language, then you'd probably still choose something like Go long before it makes sense to use Perl.
@@bobDotJS Perl has the advantage of being self-included in Linux and MacOS - so if you just want to get things done and bash isn't good enough, Perl is indeed a good solution.
Check out Raku instead. It fixes so many warts in Perl and has lots of amazing farsighted features.
For one liners or short scripts it's decent, but as soon you work on something relatively complex it gets really messy.
@@milankoncsik9546 Yeah I'll better write assembly or maybe binary in case..
Nice video, it's great to see perl being explored and described concisely by popular content creators here on youtube. I made a similar video to this a month or two ago... yours is a LOT better ;)
Say what you will about Perl, I enjoy the feature that enables a monthly dump truck full of money to show up at my house.
Love the camel!
Pd: Next fortran please!
In 2003 I was working to a telecom. There was one job that took 72 hours to complete. They put me on charge to optimize it. I was learning PERL, so I decided to give a try. It was already installed by default on HPUX. After all, the same job spent only 6 hours.
In the end, they took a look in the code and said: "What the heck you used to write the script?"
And they asked me to rewrite in ANSI C, because no one was able to understand it. 😂😂😂
I like Perl because it is a great gateway to learning C.
I used it once to parse webpages, It is actually cool
I wrote a ton of Perl code in the late 90s into the early 2000s. I used it on web sites, in system administration, and in bioinformatics projects.
Outstanding.
Was the second "internet" programming language I learned. Was disappointed when I found out literally no other languages have reg-ex by default.
Perl Advocate: But does you language have...Autovivification!?!?!?!?
Average Developer: Well, considering that I haven't heard of that term until 1 second ago, no it doesn't.
Perl Advocate: Checkmate, bitch.
1:14 *ussr anthem intensifies*
I need a nim in 100 seconds video to stay alive
According to Stack Overflow, Perl is the most paid programming language of 2022
Yes, but Perl jobs are few and far between.
No wonder. You need to be really good to translate old perl scripts and understand everything they do
It's actually not too difficult to get a Perl job. The reason they are highly paid is because most people are not looking for perl jobs yet companies have a bunch of legacy perl code. So they need someone to work on it. So once you learn perl you can be fairly confident that you will be able to find a good job :)
It's all about *supply* and demand. Economics 101. Most people just focus on demand as in "where are most jobs asking for" without considering that abundant jobs like JavaScript or Python also have the most supply of cheap programmers coming from populous countries like India. It's a crowded field out there and competition is intense for those.
The funniest part about Perl is that I have always associated it with the Camel.
And a couple of months ago I learnt that the actual mascot is an onion.
The camel is just from the O Relly book.
The syntax for accessing elements of arrays and hashes is wrong. Someone didn't read my books..... :)
Bingo.
I learned programming in earnest with PERL back in 1995/96 (after limited exposure to BASIC on a C64 back in school in the 80s and some toy stuff with Turbo Pascal in the early 90s). I don't think, PERL was the best way to start, but I did some administrative and early Web stuff afterwards. PERL is still unmatched in the 'Q&D one-liner' department. Not sure what lead to its eventual decline: arcane "Sigil" variables? Half-baked OOP? 15+ year development of Raku successor? Probably all of them. And let's not forget that with Python you had a much more beginner-friendly language at the start of the 2000s.
PERL for life!
Looks like a good language, maybe i'll add it to my summer classes in the college that i've created in my room
my/our made more sense to me then anything else I've ever used like var, let, global
Variables should not be global by default.
Sometimes I need a refresher when programming. This is the channel for that.
I needed something other than python for string manipulation, this is great!
Why? Python gets the job done
@@bg-sj9tx Python is slow, heavy and gay.
Python sucks for string parsing. Perl is a lot easier with regexes being first-class citizens, sane string interpolation, useful operators like defined-or, and stuff like that.
@@flybackrs
I kept hearing _regex_ thrown around and finally googled it. _What the fuck!_ I have almost no idea how I would begin to parse that. It literally looks like you facerolled around the keyboard or something. And these are.... useful? I... take it?
@@kindlin Just so you know, regular expressions were not invented by Perl. They are essential finite state automata used for text pattern matching. The UNIX/Linux/MacOS command *"grep"* stands for "general regular expression parser," a *basic tool* of UNIX programming. Perl just advanced the state-of-the-art of regexes. Python, Java and others based their own regex implementations on PCRE, and you should know that stands for "Perl-Compatible Regular Expression." YES, they are *hugely* useful and I couldn't even begin to tell you in a comment how much so they are. They are even used in text editors to find data in a file, that's how much they are used. So learn before you jump to judgement on something you don't know or understand.
The syntactic sucralose in perl is just 😙👌
I think Perl is super underrated
Looking at perl now, I might give it a go it didn't seem like java at all and that is good.
Any sufficiently advanced Perl script is indistinguishable from magic.
Raku is even better than Perl 6, it's like the production ready version at the end of the line of prototypes. I've found difficult to reach a conclusion about Raku thought, just because it has everything and them some to it, it's a really really feature reach language, and although I don't like it in languages e.g. C++, just because the language is always surprising you no matter how long you've been programming in it, Raku seems to have done many many things right.
good to know that weird al is branching out to other avenues .
😂
This syntax sounds like a maintenance horror story :D
Glad you included zombies, it's very on topic 😂
You are absolutely correct worked on perl once, never again. It's OOPS is beyond horror
@@pramod7426 why do you think it's called oops?
0:12 namaste? in greek means: "here we are" lel... where are we? Is this a function to find index of an element in array? wtf
It is hindi word
Used for greeting when you meet someone
I started to maintain a 20 year old legacy server side web app written in Perl, which generates web pages by printing html to the standard output. An absolute nightmare
Well, in your case perl isn’t the problem. The organization that keeps legacy code running for 20 years is.
@@jcoterhalsThat is correct. Some functions need to be re-factored or modernized a bit at a time.
I remember from a vocational class where I learned Microsoft's Powershell. The instructor ranted about Perl for 10-15 straight minutes. The abridged version of this is
"Now Powershell has some influences, one of them happens to be a programming language called Perl. Perl was created by a linguist, as in not-a -programmer background kind of computer scientist wannabe, who has some mild obsession with Unix shell commands and a deep obsession with another programming language called AWK. He pretty much merged his interests with C and some other popular languages. So you can see a very tiny influence of Perl in Powershell. The bigger point is that Perl is so unusable for anybody today to the point that its steep learning curve indirectly inspired other programmers to develop more approachable programming languages for the market today. So, thank you, Perl?"
The instructor you got was obviously an imbecile. My condolences. Perl's learning curve is actually quite shallow! You can write simple scripts within a few minutes. The learning curve, however, is *long* (not "steep"!) depending on how deep you need to go into the bushes for its more elaborate or powerful features. That's the *real* skinny.
Little known fact, the guy who invented regex also invented waterboarding.
checks out tbh
Ada in 100 seconds would be interesting
Perl gets the job done, but nobody knows why
Only the woefully uninformed don't.
After the dromedary comes the camel. Is OCaml (strongly typed pl) next?
Man, I love Perl
I wrote a script and started recording. Then this video dropped
I honestly think 'my' and 'our' sound cooler than public and private.
our $program;
ussr anthem
Thought it was going to be OCAML from a glance at the thumbnail
I love perl and i hate how it's lost adoption. I am slowly migrating all my powerful perl scripts to hacky alternates that do less with more code and includes. Gah
Can you share more about your work
Why do that? Perl is actively maintained with new versions released periodically which won't break backwards compatibility. And it comes installed already in Linux and MacOS. For systems where it is not installed, it can be easily set up with Homebrew.
Omg you have no idea how much k needed this
Mainly used for CGI: Yup, the vast majority of websites I maintain at my job use HTML::Mason with Perl. I'm trying to write newer websites using more modern languages though.
Jesus, do the pages show their age using radio-carbon dating?
I kid. I remember HTML::Mason from the early aughts but that’s millenia ago in technology development years. I saved a couple businesses a lot of money using Perl to double-check credit card transaction records. I’ve forgotten a lot since getting into Python.
I work on one of those myself. The thing is, if you have a massive number of pages and need to do HTML templating, and the templating/component system works and is fast, it doesn't really matter how old it is. The template engine doesn't care what html, css and js you're putting out, and if your whole setup is tuned well users will have no idea it was written before git existed.
Man you are great.. want a full length tutorial
The language is good with strings, that's why it was the most popular language with biologists for a time.
Yes, the human genome project's technology was directed by Dr Lincoln Stein, having both an MD and CS degree, and preferred Perl for the task.
Thank you for your time to make these videos.
Obviously we need a 100s for Raku. I had some other ideas recently for 100s. Free for you to use of course.
* Clojure
* Crystal
* Scala
And then maybe you could move on to build tools like make, basil, and Groovy? 👀
It's like describing pure beauty in 100 seconds. But hashes are a central feature of Perl, and you didn't even mention it, or the elegance that is Perl objects.