
Perl One-Liners - pkrumins
http://nostarch.com/perloneliners
======
kamaal
Not sure, how many of you are aware. But this exists from the era of the
bygones and the site is still active. Go take a look at
[http://www.perlmonks.org/](http://www.perlmonks.org/) The whole site is a
treasure, an extremely precious treasure of programming wealth. I've learned
more from Perl Monks than from any book out there.

Some day that database will super valuable. It still is. Sometimes I get this
idea that once could crawl that site, extract all the useful information and
convert it into a neat book.

All the best, and Happy writing Perl one-liners, its an art of converting days
worth work into a few seconds. I haven't read this book, but it definitely
must be awesome. As with anything with Perl, it always is.

Before all this big data fad caught on, I used to write Perl one liners to
solve most problems in 10% the time and probably 1% of the resources, for
nearly most cases of what people call big data today.

~~~
csmuk
As I found many times, Perl is awesome until you encounter someone else's
Perl.

I inherited a Perl CGI and MySQL monster back in 2002 from a Perl monk who
unfortunately died. It was a horrific Cthulu-inspired sprawling demon from
hell. Little did I know, this is the norm until my third wave of inherited
Perl a few years later.

Larger things now push me to Python and I get enough mileage on the smaller
things out of the shell and sed/grep/awk. If I want fast stuff, it's a speedup
module for Python in C.

I think back fondly of it but I know at the same time it hurt me.

~~~
fuzzix
> "As I found many times, Perl is awesome until you encounter someone else's
> Perl."

I was once that "someone else" \- I once left a many-thousand line script
behind me which consisted of hundreds of undocumented (and very similar in
many cases) regexes and not one instance of the word 'sub'. "It just sort of
grew like that", "I was young, a novice!" I tell myself, but still jerk awake
in a cold sweat from time to time after fevered dreams of 30 levels of
conditional nesting.

My last gig where I took over for "someone else", a fairly new system which
still managed to have "legacy issues", I understood the gravity of my crime. I
tried to atone by crafting concise, readable nuggets for my successor but I am
still haunted.

I met the chap who took over from me recently. Regarding my "someone else" he
asked: "How did you maintain your sanity?" "I didn't". He also complimented
the parts I left behind, but I still have those restless nights.

"Someone else"'s worst crimes were committed using Ruby on Rails, but the Perl
system was constrained by an existing, strongly defined framework. With
absolute freedom, there's no telling what damage "someone else" may have
wrought.

------
pkrumins
Hey guys,

I'm happy to give free review copies to first 10 people who'd really like to
read the book! (Print books+ebooks within the US, ebooks anywhere else.) Just
respond to this comment and I'll send you a free review copy!

Alternatively use coupon code HNPERL for 40% off (till Dec 16).

UPDATE: All 10 copies have been claimed. Thanks everyone who participated in
the giveaway!

~~~
dmunoz
Would love to review your book. Where are you looking for reviews to be
submitted? I'm outside the US, so it would only need to be an ebook.

Just about to talk the dog out for a walk, but will check in as soon as I
return. Thanks for the opportunity.

~~~
pkrumins
Awesome, you got a review copy. You can submit the review on your blog, or
just tweet about it, or if you don't feel like saying anything about it, then
it's fine too. Email me peter@catonmat.net and I'll arrange you a copy!

------
mst
I got to see a pre-release. I didn't write a review, as such, because I
already knew everything that was in there and I can't really say if it teaches
well as a result. But:

I read most of this book, and didn't want to yell at the authors because they
were doing Perl wrong.

Given how much of a perfectionist bastard I am ... this is likely high praise.

~~~
systems
So you didn't want to yell, because there was nothing bad enough to yell at

or because you were being ... inexplicably... kind?

~~~
mst
There's no need to accuse me of that :)

------
MrZongle2
"Your mama writes Perl code so bad she made Larry Wall switch to Python!"

Wrong type of Perl one-liner?

~~~
pkrumins
Haha, that's the best type of Perl one-liner! Just let's make it proper:

    
    
        perl -E 'say "Your mama writes Perl code so bad she made Larry Wall switch to Python!"'

------
retroafroman
Congratulations! I like to watch your blog[1] for interesting tidbits. I
always pick up something I didn't know how to do.

[1] [http://www.catonmat.net/](http://www.catonmat.net/)

~~~
pkrumins
Thank you!

~~~
bierik
After having seen the entry on HN, it took about 5 minutes and the print
version of the book was ordered :). I've been using Perl on and off for more
than 10 years, mostly for sysadmin and data munging stuff, and I'm always on
the lookout for good short scripts. I'm looking forward to browse through the
book (I still prefer print versions). I've bookmarked your blog as well.

------
oinksoft
Congratulations on getting published by No Starch! Your website is very
useful, especially the sed one-liners.

~~~
pkrumins
Thank you!

------
draegtun
If you're writing a lot of one-liners that use multiple modules then you may
want to consider something like App::MyPerl -
[https://metacpan.org/pod/App::MyPerl](https://metacpan.org/pod/App::MyPerl)

------
voltagex_
Anyone else seeing weird font substitution in Adobe's reader with the PDF of
this book?

perl -ne 'print "$. $_" if $a{$_}++' looks like it has 1s instead of ls -
happens whenever the monospaced font is used.

------
hernan604
Just send me one too :)

------
myrandomcomment
"Part of the fun of programming in Perl lies in tackling tedious tasks with
short, efficient, and reusable code."

Reusable - I have always felt that Perl is a write-only language. :)

~~~
mst
Bad perl is write only.

Good perl is a different matter.

With great expressiveness comes great ability to express how bad you are at
writing maintainable code.

