From: Daniel Bye Date: 2010-02-11T00:46:02+09:00 Subject: Re: How to change stdin separator (perl vs ruby) On Thu, Feb 11, 2010 at 12:23:55AM +0900, Sak .. wrote: > I have to process very very big text files and not line per line, I have > to access to a group of lines seperated for a "%". Then I tryed to > access line per line and detect the separator for each line saving the > lines in a buffer, obviously it works but it's very slow (text files are > bigger than 1GB). > > Perl have an awesome feature that is to change the separator for > iterating files (by default in all languages is "\n"), this simple and > extremely efficent code do what I need: > > $/ = "%"; > while ($article = ) { > #Iteration > } > If your delimiter only occurs as a delimiter, and not in the data as well: File.open(path_to_file, 'r') do |f| f.each('%') do |record| # Do stuff. end end > > I can write a equivalent code in ruby but not (by far) as efficient as > perl. Someone knows how can I change the separator for iterate the stdin > in ruby? > > Thanks! > -- > Posted via http://www.ruby-forum.com/. > > > !DSPAM:4b72d13c186061354869328! > > -- Daniel Bye _ ASCII ribbon campaign ( ) - against HTML, vCards and X - proprietary attachments in e-mail / \