You can't seek on a pipe. You may be able to seek (though I've not tried) on a redirection, e.g., "./filter.pl < filter.pl". But that's not what you want.
What you want to do is read everything into memory, and spit it out to the multiple destinations. Well, not quite - some emails can get quite large.
Closer is to buffer the header. Once you've determined if you're doing to do something with it based on the $dfrom, then you can loop through the header before going through stdin for data on your next time through the email.
More realistically, copy the whole thing to a temp file, and use that. You can seek all you want on a temp file.
In reply to Re: Recirect data and Filehandle manipulation (STDIN x Disk IO)
by Tanktalus
in thread Redirect data and Filehandle manipulation (STDIN x Disk IO)
by mda2
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |