var c = 0 var seen = Hash() ARGF.each { |line| line.chomp! var r = line.reverse ((seen{r} := 0 ++) && (c++ < 5) && say "#{line} #{r}") -> || (seen{line} := 0 ++) } say c