Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re: Foreach loop help. Start from specific line

by roboticus (Chancellor)
on Oct 22, 2012 at 13:27 UTC ( #1000340=note: print w/ replies, xml ) Need Help??

in reply to Foreach loop help. Start from specific line


A cheap & cheezy way you can do it:

$ cat #!/usr/bin/perl use 5.14.0; use warnings; use autodie; #START # Ignore first few lines (read & discard) my $start=2; <DATA> for 1..$start; #END # Process file... while (<DATA>) { print; } __DATA__ Now is the time for all good men to come to the aid of their party. $ perl to come to the aid of their party.

Just add the lines between START and END to your program after opening your file. That way, it'll just discard the first $start lines before processing the remainder of the file.

As an added bonus, you can also:

  • Make the $start parameter a command-line argument.
  • Add another argument to limit the number of lines processed.

This lets you fire off multiple jobs that can run in parallel:

$ perl --start 200000 --limit 100000 >out1 & $ perl --start 300000 --limit 100000 >out2 & $ perl --start 400000 --limit 100000 >out3 & $ # wait for all jobs to complete, then you can join all $ # the results together: $ cat out1 out2 out3 >output


When your only tool is a hammer, all problems look like your thumb.

Comment on Re: Foreach loop help. Start from specific line
Select or Download Code

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (18)
As of 2015-11-30 21:06 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (783 votes), past polls