From: dblack / wobblini.net
> On Wed, 3 Jan 2007, William James wrote:
> > Jules wrote:
> >> And given an array of line numbers, what is the best way to delete
> >> these lines from a file?
> > lines = IO.readlines('junk1')
> > [1,3,5].each{|n| lines.slice!(n) }
> 
> That's going to have a side-effect problem:
> 
> irb(main):004:0> a = %w{ a b c d e f }
> => ["a", "b", "c", "d", "e", "f"]
> irb(main):005:0> [1,3,5].each {|e| a.slice!(e) }
> => [1, 3, 5]
> irb(main):006:0> a
> => ["a", "c", "d", "f"]
> 
> You'd probably want to reverse the list of indices.

Or perhaps:
  irb(main):001:0> a = %w{a b c d e f }
  => ["a", "b", "c", "d", "e", "f"]
  irb(main):002:0> [1,3,5].each{ |e| a[e] = nil }
  => [1, 3, 5]
  irb(main):003:0> a.compact
  => ["a", "c", "e"]

Remembering, of course, that the 1st line is the 0th line number.