>>763
https://ideone.com/pyWQL9


実行例:
  $ ruby enum-drop.rb hoge.txt
  3.りんご
  4.ばなな
  5.パイナップル
  $

28行目のメソッド Enumerable#drop(n) を利用することがポイント
  http://docs.ruby-lang.org/ja/2.2.0/method/Enumerable/i/drop.html

なお Enumerable#drop はリターン値として配列(Array オブジェクト)を返すから、
入力データ(の行数)が膨大になるとメモリ効率が悪くなる
この問題は代わりに Enumerator::Lazy#drop(n) を使うと、行単位にオブジェクトが
生産/消費されるようになるから、メモリ効率を改善できる
  http://docs.ruby-lang.org/ja/2.2.0/method/Enumerator=3a=3aLazy/i/drop.html

具体的には、28行目のメソッドチェーンで drop の前に lazy を挿入するだけで終わる:
  ....(前略).... .each_line.lazy.drop(num). ....(後略)....

ただし Enumerator::Lazy は Ruby 2.0 で追加された組込みモジュールだから、
Ruby 1.8/1.9 で利用するなら enumerable-lazy という Gems パッケージが必要になる