Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: Scriptome and Perl One-Liners

by rnahi (Curate)
on Oct 23, 2005 at 15:01 UTC ( #502312=note: print w/ replies, xml ) Need Help??


in reply to Scriptome and Perl One-Liners

much of the code in the Scriptome would make an excellent tutorial on Perl one-liners

I would not be so quick about excellence.

Take for example, this page

perl -ne 'BEGIN {$col=1}' -e 's/\r?\n//; @F=split /\t/, $_; $sum += $F +[$col]; END {warn "Sum of column $col for $. lines\n"; print "$sum\n"}' file.t +ab

I see an inefficient replacement of newline, instead of chomp. But since this is a one-liner, the "-l" option will do instead, and it will also save the output newlines.

Then, the @F=split /\t/, $_; could be easily replaced by the "-a" autosplit option, which will happily take charge of different whitespace types, other than tabs.

I would say that this one-liner woult be better written as

perl -e 'BEGIN {$col=1}' -lane '$sum += $F[$col]; END {print "Sum of column $col for $. line: $sum"}' file.tab

Or, I should even dare this:

perl -lane '$sum += $F[1]; END {print $sum}' file.tab

It's shorter, thus easier to write, and less mistakes to make when copying it.


Comment on Re: Scriptome and Perl One-Liners
Select or Download Code
Replies are listed 'Best First'.
Re^2: Scriptome and Perl One-Liners
by educated_foo (Vicar) on Oct 31, 2005 at 23:32 UTC
    Here's the contribution link. Some of these scripts aren't optimally short or beautiful, but the motive seems correct and the process is open.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://502312]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (17)
As of 2015-07-28 19:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (258 votes), past polls