Re: Looping through file for regex
From: Rob Dixon (rob_at_dixon.port995.com)
Date: 01/02/04
- Next message: Charles K. Clarkson: "RE: Looping through file for regex"
- Previous message: James Edward Gray II: "Re: Looping through file for regex"
- In reply to: James Edward Gray II: "Re: Looping through file for regex"
- Next in thread: Charles K. Clarkson: "RE: Looping through file for regex"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
To: beginners@perl.org Date: Fri, 2 Jan 2004 17:37:11 -0000
James Edward Gray II wrote:
>
> On Jan 2, 2004, at 10:46 AM, Ed Christian wrote:
>
> > James Edward Gray II wrote:
> >> On Jan 2, 2004, at 10:10 AM, Paul Kraus wrote:
> >>
> >>>> Don't do that. The foreach reads the whole file into memory and
> >>>> then walks it line by line. If we just want one at a time, let's
> >>>> fetch them that way
> >>>
> >>> I don't agree with this.
> >>
> >> And I don't understand this. ;)
> >>
> >>> If you are working with a file that is as small as
> >>> the one included seems to be easier to just load up some data
> >>> structures. I understand writing efficient code is always best but
> >>> for a quickie script like this I wouldn't be to concerned with the
> >>> 1/100th of a ms that your going to shave off but not dumping the
> >>> contents to memory.
> >>
> >> If you're going to work with the lines one at a time anyway, what
> >> exactly is the advantage of using the probably slower and definitely
> >> more memory wasteful foreach()?
> >
> > While the foreach is certainly more wasteful, why in the world would
> > you
> > re-initialize and re-open the file multiple times? Why not just open
> > the
> > file once and iterate over the file, comparing each line of the file to
> > each of the keys in the %input hash?
>
> Your way is certainly better, if output order doesn't matter. The
> original code checked the first key against the file, then second, then
> third. Your suggestion could find the sixth index before it finds the
> first. If the order doesn't matter though, I agree that your
> suggestion would be boatloads more efficient.
Except that there's no need to reopen the file. A simple
seek DATA, 0, 0
will do the trick with very little overhead.
Rob
- Next message: Charles K. Clarkson: "RE: Looping through file for regex"
- Previous message: James Edward Gray II: "Re: Looping through file for regex"
- In reply to: James Edward Gray II: "Re: Looping through file for regex"
- Next in thread: Charles K. Clarkson: "RE: Looping through file for regex"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|