Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

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.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1000340]
and the monks are chillaxin'...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (5)
As of 2018-02-24 16:39 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (310 votes). Check out past polls.