If the files are in the proper order (sorted by email address, if I remember correctly), you can use a file merge type solution.
- Open your output file (O)
- Open your input file (I), and your deletion file (D)
- Read first record of I and D
- while I is not at end of file
- read next record from D while D < I and D is not at the end of file
- send I -> O unless I == D
- close all files
Conversion into perl is left as an exercise to the reader.
sort (OS level), sort (Perl level), open, close, eof, and perlop are all potentially helpful in this task.
Be aware that you are dealing with 1 billion records, so it is likely, depending on the complexity of the records and comparison, that the sort or filter step could take a while.
Benefits: only one record from each of the input and deletion files is in memory at a time.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.