|Just another Perl shrine|
Parsing mysqldump filesby puterboy (Scribe)
|on Feb 24, 2013 at 19:47 UTC||Need Help??|
puterboy has asked for the
wisdom of the Perl Monks concerning the following question:
I am trying to use perl to parse my mysqldump backup files.
The format of the colum name heading list is:
The format of a general table is:
where each parenthetical list represents a row and rows are separated by commas. Numerical entries can be written as-is, while string entries are enclosed in single quotes. Single quotes within a string can be escaped with a backslash. Commas and parenthesis are treated as string characters when within a quoted string.
. It seems like the most logical way to store the data would be either as an array of arrays (without any explicit column header names) or as an array of hashes where the hash is indexed by the column names.
I am interested in trying both ways. However, I don't know how best to parse the single quotes and backslashed quotes so that for example parentheses or commas or a backslashed quote within a single quoted string get properly treated as a string character and not as a seperater.
. I also would be interested in a slick way of slurping this in without having to use some generic heavy-duty perl parser module. It seems like the parsing shouldn't be too difficult since the rules are simple but I don't know the best way...
Has anyone either parsed mysqldump format (or similar formats) before?