I am somewhat beating my head against a brick wall here - so I think "Hey! This sounds like a Fun With Perl project :)"
Here is the challenge - You are presented with a MySQL Schema dump that is less than 9 million rows; you should read the data row by row, finding each CREATE TABLE statement, and displaying the next ~50 lines INCLUDING this line - do this recursively until end of file is reached. My brute force efforts, while slow, are generally working - I am wondering - could this become MORE FUN ? My brute force method - #!/usr/local/bin/perl -w use strict; use diagnostics; $|++; my $ctr; my $flag; open (RFILE, "<Daily_bb551_20021410000103286.dump") or die "\n\nCan't open Schema.Raw for reading: $!\n\n"; open (NFILE, ">Schema.Cooked") or die "\n\nCan't open Schema.Cooked for writing: $!\n\n"; while (<RFILE>) { $ctr++; # Count lines read... s/\n/ /; # newline to space... s/^\s+//; # compress leading whitespace... s/\s+$//; # compress trailing whitespace... next unless length; # anything to process? # CREATE TABLE if (/^CREATE\sTABLE\s\(/) { print NFILE "\n\n$_\n"; $flag++; next; } # End of segment if (/^\#\sDumpings\datas\for\stable\s\'/) { --$flag; next; } # Get data, while $flag if ($flag) { print NFILE " $_\n "; next; } # Everything else is skipped # during natural looping... } # end while loop close (RFILE) or die "\n\nCan't close Schema.Raw: $!\n\n"; close (NFILE) or die "\n\nCan't close Schema.Cooked: $!\n\n"; print "\nProcessed $ctr lines...\n\n"; __END__ Example of the snapshot - # Table structure for table 'addressbook' # CREATE TABLE addressbook ( .. . Get everything here ... . PRIMARY KEY (pk1,sos_id_pk2), KEY addrbk_users_fk_i (users_pk1,users_sos_id_pk2) ); # # Dumping data for table 'addressbook' The line above denotes end of this segment; skip all data until next segment area... Any helpful mumblings would be appreciated :) Thx! -Bill- :] _Sx____________________ ('> iudicium ferat //\ Have Computer - v_/_ Will Hack...