dupとかclone
- Cのソースファイルからあるキーワードが含まれた行を表示
- コメント文にそのキーワードがあっても無視
- /* */で囲まれたコメントはごめんなさい
そんなプログラムをrubyでつくるとしたら例えばこんな感じのかな
while line = gets $_.chomp! $_.sub(/\/\/.*/.'') if /keyword/ =~ $_ puts $_ end end
でも,これだと//以降を切ってしまったので元々の行が表示できない!
ということでwhile文の直後にどこかにコピーしておけばいいんだけど,単純な=だと参照コピーなんだよなぁ。。。
ということで出番なのがdupとか。
こいつを使えばsubとかchompする前のデータをコピーしておける。
ということでこんな感じに
while line = gets show_str = $_.dup $_.chomp! $_.sub(/\/\/.*/.'') if /keyword/ =~ $_ puts show_str end end