What's the best online source to learn Perl? [closed] - perl

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I am new to any scripting language. But, still I worked on scripting a bit like tailoring other scripts to work for my purpose. For me, what is the best online resource to learn Perl?

If you already know a bit of perl, PerlMonks is a great online resource. You can ask questions in their Seekers of Perl Wisdom section and the answers are often of very high quality. Many people who keep up with the latest developments in Perl hang out there.
As an added bonus, if you ask a clear question, many times the people there take the time to look at the underlying problem and will point out alternate approaches rather than simply taking your question at face value.

I realize that the question is about online sources, but I taught myself Perl in about three weeks thanks to the following books:
Learning Perl
Intermediate Perl
I already had a little bit of background knowledge in C, but the way these books teach is phenomenal. Scripts I've written in Perl are currently powering the data analysis process used by some instrument teams on the UA/NASA Phoenix Mars Lander - and I'm a junior in college! If it's good enough for NASA, it's good enough for you :)

The perldoc documentation is the best source for understanding how to use the language well.
The camel book "Programming Perl" is an excellent printed reference with thorough explanations written by the same people who wrote the perldocs (other books with animals on them are mostly ok.) Beware online tutorials - many of them teach very sloppy perl.
Use 'warnings' and 'strict' - then perl will be very helpful in pointing out your errors.
Perlmonks is also great (they will also tell you to use 'warnings' and 'strict'.)
And then you have to learn the CPAN one module at a time (which is where perlmonks and mailing lists are very helpful.)

http://learn.perl.org/
From the Online Library:
Beginning Perl
Impatient Perl

I highly recommend starting with Simon Cozens' Beginning Perl book.
And also, reading the Perl documentation.

Perl is in a state of (comparatively) rapid change, and has gotten into the position where the best documentation beyond a basic introduction to Perl 5 -- the current major version -- is the electronic documentation which comes with the language itself.
Read 'perldoc perlintro', then look to 'perldoc perl' for the rest of the core language documentation. Note that on Debian systems, you'll need to 'apt-get install perl-doc' to get this documentation.
Once you've got a handle on things, check out 'perldoc perldelta' to see what's new in the version of Perl installed on your system (which should be 5.8.8 or 5.10 these days -- much cool stuff in 5.10!). If the perldelta page isn't making any sense (and believe me, I remember how that feels), just come back to it later.
Finally, freenode #perl for questions you can't find answers to in the docs.

The Official Perl 5 Wiki is a great resource with lots of info and links, and it aims to be beginner-friendly.
Also see the bottom of the wiki home page for the latest headlines from the Planet Perl feed aggregator. It's useful to skim over every few days, because it sometimes answers questions that you didn't know enough to ask, but which you should be asking.

I would very much recommend Programming Perl, but beware you may need a subscription to Safari in order to read it online.

As other people noted, the online book Beginning Perl has a good reputation and is written by a very clueful expert and active Perl contributor. Other than that, I concentrated resources for beginners in the Perl Beginners' Site, and you can probably find something there that would be to your liking.

If you are a beginner, I would suggest you take a look at the cookbook provided by PLEAC. You can find it at http://pleac.sf.net. There you can find cookbooks for most languages.

A new resource is chromatic's Modern Perl, which is available for free online, though you may purchase a paper copy if you prefer.

Related

Why should I use Perl instead of Ruby/Python/etc? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
I love Ruby and have been using it for a few years to handle day-to-day scripting tasks. Lately however, I've had a number of people tell me that Perl is where it's at. I have nothing against Perl, but it seems like it's kind of fallen behind the times a bit.
However, that's probably just my perception, so I'm asking all of you, what makes Perl so great? I'm genuinely seeking information here; I'd like to understand why this language has such ardent followers.
I know a good handful of hackers who left Perl to go to Ruby. Python is obviously a nice language too. I am neither saying nor implying anything against either.
Pros for Perl 5
Since about 2005 or so Perl has been in a fairly dramatic renaissance in both CPAN and core releases. Perl 6 has helped drive this by sending concepts like role-oriented OO back. Strawberry Perl has made Perl hacking on Windows more like *nix.
The CPAN is huge, still growing, and most of the more widely used authors/teams are responsive to bugfixes. Most popular Perl modules are tested widely and well. CPAN testers recently sent their 10 millionth test report.
Many of the big kits have good communities associated where expert help is available quickly.
The tool chain has become very flexible.
The combination of perlbrew, local::lib, and cpanminus lets users (even without root) have an arbitrary number of perl versions and libraries accessible on the same box.
Many of things that Java, Ruby, Python do right come back to Perl and with facility. For example–
KinoSearch is Lucene but even faster by some benchmarks.
Catalyst is Rails but more flexible. It’s a completely agnostic C with regards to the M and V.
Plack is Python’s WSGI + Ruby’s Rack.
It’s as fast and personal or readable and robust as you want it to be.
A short one-liner can edit every HTML file in your tree when you’re in a hurry to fix something.
A clear and robust program with error reporting, logging, and feedback built on any of the 6 or 7 suitable HTML/XML packages could do the same for a client.
Perlmonks. Though there are notable exceptions, the Perl community is generally friendly, helpful, and positive.
There are quite a few good Perl jobs waiting to be filled. The back and forth between the high level languages has left oodles of Perl in the wild without a matching crop of Perl-centric devs. (I get 5-7 cold calls from recruiters a year.)
It’s fun. In quotes: “Perl has the happiest users.” I can’t speak to the scientific nature of that but I can say I only program today because Perl exists. Many other Perl hackers share this stupid giddiness for the language.
Keep in mind it’s not a zero sum game. The more languages you can wield, the better.
If I had to name one great strength of Perl, it's one word: CPAN.
Having worked with Ruby as well, I'd not say that Perl is necessarily better or worse, but definitely more mature. It is, after all, much older. However, it's not decrepit. It has plenty of modern stuff, e.g., Moose and the 5.10 and 5.12 updates have fixed a lot of problems that the ancient 5.0.x had.
(And if you're wondering: Perl 5 and Perl 6 are different languages. The similar name is an unfortunate mistake. Though Perl 5 does borrow ideas from Perl 6 and vice versa.)
CPAN.
The syntax of Perl is sometimes painful to look at but it is available on Unix machines everywhere and with the command line access to the huge number of packages in CPAN (which can also be accessed via browser), Perl is the de facto standard because of its broad applicability and availability.
These days, IMO the main reason to use Perl is that you can be pretty confident that just about any UNIX system will have it available, even on the sparser commercial UNIX distros.
Also, it has some features that make it work very conveniently with the UNIX shell and filesystem. Perl one-liners are convenient in shell scripting when you need a little more power.
If you're not on a UNIX machine then there's probably little advantage over more modern scripting languages.
First of all I love Python and Ruby as well. In fact I think anything you can do in anyone of the 3 languages you can do in the other just as easily.
CPAN however is a big advantage. There are not many times I find myself looking for a specific general functionality and not finding a module for it.
The greatest thing for me is however is that I can do absolutely everything I want, quickly, and in 10 different ways if I like, but maybe that's just because Perl is my 'mother tongue'.
Anyway, I think it depends on what you want to do. If you want to create a scalable website or web application with all the plumbing (authentication, authorization, session tracking, database ORM, etc, etc) taken care of, it can be done in Perl, but the hassle is not worth it. Go with Python (Django) or Ruby (Rails 3.0 rocks) then.
Good luck and watch out fire setting of flamewars with this subject, this kind of stuff get seriously get you hurt ;)
Rob

Perl screencast? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I need to learn Perl for an academic research I am doing. I need to go through a lot of older perl scripts and run them, tweak some perl scripts from open source tools for my use and of course make some of my own.
I have a tight schedule so I needed to be comfortable with a perl code pretty quickly. I have previous coding experience from C and Java but not with any scripting languages as such. I found Perl to be quite difficult to get used to from the beginner tutorials I have gone across. I am more comfortable learning through screencasts rather than go through books when I start learning languages. Of course one always needs a good reference book or user manual but videos are more intuitive when learning something first especially because I can see the expert actually code stuff and explain it at the same time.
I've heard from other friends that there are great screencasts for other scripting languages like Ruby and Python. I was wondering is there any really good quality screencast for Perl out there. So, I ask for help from people who have good experience with Perl to point me to a good resource.
I don't think that screencasts are really that valuable in terms of learning fast and deep. There are some nice Perl 6 screencasts, but for Perl 5 I still think perldoc is the best thing you can find. Comprehensive and readable.
Also, Perl is a pretty big language, similar to natural languages in many cases: easy to get comfortable with simple things, and requiring more experience to get around the difficult/sophisticated syntax/concepts. Mastering Perl takes time, especially when you'll need to work with old Perl (it's pretty different to Modern Perl, written today).
This may not work for everyone,but personally, I find taking on small projects (or inventing my own) to be the only sufficient way of learning a language quickly.
One trick I use for high-speed, is to take stuff I've already written in other languages, and port it to the new one. I moved from Rexx to Perl this way a few years ago, then from Perl to Python recently, and now I'm moving from Python to Ruby in the same way. So, you could try taking something you've written in C, and porting it to Perl.
Frankly, being given a big pile of old code to comb through is a huge gift. You could try plugging the classes and functions into new short projects, to see how they behave. You could also try writing unit tests exercising them, to give you both familiarity with coding in Perl, and familiarity with the functionality of the codebase you're familiarizing yourself with.
One of the best ways of learning is:
Learn Perl debugger. If you are familiar with gdb, it should be a breeze
Run a few of those older scripts, and try to grok them, by looking up sercheable references on perldoc web site, tweaking/messing with them, and importantly, debugging them.
Whenever you run into some piece that you just don't get (especially feature/functionality that's not easily searcheable for like a keyword/built in function would be), come to SO with that specific thing and you'll get fairly reliably comprehensive answers.
Go through a decent set of books. O'Reilly are the best for Perl (Camel would be my recommendation) - they are actuially VERY quick/easy to skim through to get the main points of someone who already has C and Java experience. Couple that with the main perldoc tutorials (data structures, modules and OOP)
For doing new work of your own, get a hold of Perl Cookbook in addition to the above.

Best Educational Operating System For Study? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
What's the best operating system to study in order to write your own x86 operating system from scratch?
I think Minix was created for pretty much that exact purpose.
Have fun!
It might be difficult to comprehend the source for an entire OS all at once. The tutorials over at osdev.org have a few "bare bones" code samples to get you started.
I just wrote my version of x86 kernel from scratch! (for my OS class project) and that was experience I couldn't probably describe. You can find valuable resources at above link.
For my OS class in college we used the Nachos OS Project and implemented that. I did the C++ version, however I think there is also a Java port of this as well. I remember it being very interesting and learning a great deal, even though it was a lot of work.
It all depends on how you want your Operating System to function, if you want a microkernel you should probably study Minix 3, or if you want a monolithic kernel the current linux kernel is a good place to start from (HINT: look in arch/x86/boot, there is some very interesting code in there).
However I personally think that you should read through the Intel and AMD manuals, and then do a bit of reading on the osdev.org forums and wiki. They have plenty of code to study, and are generally helpful towards newbies.
Honestly, you should probably not start with an x86 architecture, or even operating systems but maybe something like an 8-bit starter kit, like a basic Fox11 development kit. In college, I wrote my first (and only) OS in Assembly for an M68HC11 processor (the one in the kit).
If you really want to build your own OS from scratch, you've got a long road ahead of you.
I think best way to read many different operating system sources, definitely osdev barebone tutorials, whitepapers on OS research and documentation on your target hardware.
I personally would recommend looking at l4-ka pistachio kernel, written in pretty darn good C++. There are also multiple smaller projects definitely worth checking out, like jimix or pedigree.
Best to stick around osdev forums and wiki - there is a lot of information there already answered - see http://forum.osdev.org and http://wiki.osdev.org
I read this article a while back. You might find it interesting. This guy wrote MINIX back in the day for the very purpose of teaching OS concepts. So it would probably be a good simple OS to study. http://www.cs.vu.nl/~ast/brown/
However, as Martin and Cory mentioned, it's a big chunk to chew.
There is not much point in studying obsolete OS's which is pretty much all current OS's as they tend to have long lives. Have a look at some fresh ideas (although based on tried and true) like Singularity

How to go about learning perl [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I am a bioinformatics student and am in the process of learning perl. I don't have a strong programming background but would like for that to change.
Right now I am in the process of reading/following and coding from this book
I want to know is this the best way to go about learning perl? Should I be experimenting with regular expressions more? Should I keep trying writing sample perl scripts?
Related: what are good books for learning perl
The definitive learning Perl book is aptly called "Learning Perl". Get it.
I cannot recommend writing sample scripts. Try to write something that you need. It doesn't have to be a big endeavor; everyone needs a little tool now and then. Writing sample scripts is boring; always was, always will be.
This seems like a potential duplicate as here are some related questions:
What are the best resources to starting learning Perl?
What’s the best online source to learn Perl?
Like most other answers on this post I can't disagree with the choice of "Learning Perl" as your first Perl text. Keep a copy of the perldoc documentation available for quick reference(I prefer using the html/pdf format which is available as a download from the main page).
In order to keep things from getting boring, especially in the initial stages I started converting my shell scripts to Perl, hacking away at it until I had three or more different versions of the same program with decreasing file size(not great for maintenance though). But then you know what they say - TMTOWTDI. Now I don't bother with shell scripts any more, writing it in Perl results in smaller turnaround times and the code can be easily reused and enhanced.
Once you are familiar with the more advanced concepts and are approaching a level of comfortability with using it for your day-to-day work or just simple one-liners you might want to have a look at Mark Jason Dominus' Higher-Order Perl which, according to me, takes the language and the reader's understanding of it to an entirely new level. The chapter on "Recursion and Callbacks" was a real eye-opener and changed my style completely from that of writing C-programs in Perl to actually writing "Perl" programs in Perl.
I use the online book "Learning Perl the Hard Way" to teach my coworkers about Perl.
Don't be intimidated by the title, it's just that it's directed at programmers who are already fluent in another language and therefore it doesn't focus on the programming part, but mostly on the Perl part, so it may apply better to your case (or not).
You really can't go wrong with the Lama book
Learning Perl
There's quite a library of O'Reilly books on Perl. Programming Perl is also excellent and probably worth having to complement the Lama book - I have both on my shelves and although I haven't needed to code in Perl for quite some time I found these books together a solid enough combination. The Perl Cookbook came in useful too (yes, this is one of those areas that O'Reilly has pretty much sew up :-).
As to practical exercises, Perl does have something of a reputation as a 'Write Only' language, so look for clear examples and if you are confused by anything don't necessarily assume that the problem is you - there's always more than one way to do it.
You also might want to look for examples of good code to study.
My experience is that there's nothing better for learning than doing. But you need someone to provide feedback, especially when you hit roadblocks that you can't get past. Stackoverflow is good for that, but, IME, Perlmonks is better in that there is a chatterbox for immediate feedback, as well as their question-and-answer posts for longer questions, combined with a more specialised environment. (And Larry Wall has been rumoured to hang out there, too, as well as a number of the authors of the above-referred-to books.)
Learn by doing. Get the books mentioned by others, but the real way to learn is to start a simple project. Mine was a Gtk based SQL editor. If you run into problems ask questions here and on the Perl Beginners list.
The choice of book is can be vary from person to person. So, as bioinformatics student who use perl, don't get any book that called "(X Programming language) for bioinformatics". Usually this kind of book is either.
They only give very basic of that programming language. You gonna to miss all the power from that language.
Wasting its space on how to use API, which you can find information easily via google.

Where can I get good answers to my Perl-related questions? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
AFAIK one of the objectives of Stack Overflow is to make sure anyone can come here and find good answers to her Perl related questions. Certainly beginners would ask what is the best online source to learn Perl but others might just want to ask a question.
Probably the friendliest place is the Monastery of Perl Monks. It is a web site with a rating system similar to but more simple than Stack Overflow. You can find lots of good answers there and if you don't find an answer you can always ask.
The other big resource would be the mailing list of your local Perl Mongers group.
Where do you go when you are looking for an answer to a Perl related question?
It's worth noting that http://perlmonks.org, in addition to the fora, has the Chatterbox, where simple questions can be answered immediately in conversation with other users.
It requires setting up an account and logging in before using the Chatterbox, though.
Thus far, I've been pretty content with the quality of Perl answers I've seen here. Many of the most experienced Perl programmers I know from conferences, Perlmonks, use.perl.org, etc. seem to be present here and answering questions seriously and clearly. In cases where an answer has been wrong or simply bad in a sense of promoting bad practice, those answers have been quickly identified, voted down and/or commented-upon.
I'm a great fan of Perlmonks, but it's a different sort of site than this one. Besides being specific to Perl, it also has separate areas set aside for reviewing modules, posting code snippets, reviewing books, etc.
Best place: here. Each time I asked, I got correct answers, in less than 20 minutes. Faster that anywhere else.
I've never asked questions, but that's probably because I tend to write simple scripts rather than applications.
Have always found the Perldoc site to be a good way to work out how to do stuff - and I normally learn a bit more whilst looking.
Sometimes, it might be worthwhile to try to get help via IRC. Quite some time ago, I found the #perl channel on the freenode network to be pretty friendly and helpful. As always it's important that you have exhausted the normal means of solving your problem: Read the documentation, search the web, etc.
However, I'll also take this opportunity to mention where you should not go asking for help: The #perl channel on MagNet aka irc.perl.org. It's a channel where people just hang out and talk about essentially anything but help requests. However, on that network, there's quite a few channels particularly about certain Perl-related projects. The people who lurk in those may well be the primary authors of the relevant piece of software. Those channel's aren't help desks either, but if you have a very challenging and interesting problem, you might be able to get them interested enough to help you. Just make sure you do your homework first and be prepared to get involved yourself.
For documentation on Perl builtins and standard modules, perldoc.perl.org is an web version of the Perl docs with pretty colors and such. I use a keyword bookmark, pd for this.
For finding modules, search.cpan.org is the place to go; for this I use the keyword pm.
When you have a question that requires humans to answer, Perl Monks is my preferred place, though Stack Overflow seems to have attracted a good crowd already.
Usenet is pretty good too
comp.lang.perl.misc, comp.lang.perl.modules and comp.lang.perl.moderated are good places to ask questions IMHO.
The Official Perl 5 Wiki is another great resource with lots of info and links.
(Also see the bottom of the wiki home page for the latest headlines from the Planet Perl feed aggregator. It's useful to look at, because it sometimes suggests questions that you didn't know that you should be asking.)
Incidentally, an ambitious stackoverflow Perl fan could also add a new section to the Perl 5 wiki pointing to questions answered on stackoverflow (and perhaps vice versa).
I favor use.perl.org over perlmonks. I'm not sure why. It's a smaller community, maybe the signal to noise ratio is higher for me.
Incidentally, I get good answers there to any question, not just Perl questions. I ask Java questions, Linux questions, sometimes even cultural questions, and there's always someone there who knows. :)
I am surprised that no one has mentioned the Perl Beginners mailing list.
I like IRC, try #perl on irc.perl.org or irc.freenode.net, or maybe #perlhelp on irc.efnet.nl. Lots and lots of very clever, helpful people always willing to discuss perl-related issues.
Maybe I'll see you there :)
I don't have a specific site, but tend to just google the main keywords of what I am looking for. There are many sites out there, however, I have got the best responses here for very specific stuff.
Have a big AIM/Jabber list filled with knowledgeable Perl people you're friends with.
I talk to my imaginary friends on #catalyst, #perl and other channels on irc.perl.org.
[edit] Bearing in mind that due to the limitations of non face to face communication with people you don't really know, you need to be simultaneously respectful of people whom it might superficially look like are being very rude to you. It pays to be thick skinned on IRC.
I would say Stackoverflow