> I have a file that contains, among > other things, SQL that is > bracketed by BEGINSQL and ENDSQL. > > I have written perl code that parses > this out and executes it, and it is > working for 99% of the cases. > > I am getting some SQL though that > spans multiple lines. > > How can I parse out this case?
A simple hack: local $/ = "ENDSQL"; # And the demonstration while (<DATA>) { tr/\n/ /; # Turn newlines into spaces print $..':'.' '.$_; # Neat eh? Anyway, it just #prints each SQL query with line numbering print "\n" x 3; } __DATA__ BEGINSQL SELECT * FROM BLAH WHERE FOO = BAR ENDSQL BEGINSQL SELECT NAME FROM TELEPHONEBOOK WHERE SURNAME = 'PATON' ENDSQL __END__ However, although you are 99% there, you might wanted to use Parse::RecDescent. It does most of the hard work, making your life simpler - bet you wish you had been told before you started? ;) Jonathan Paton __________________________________________________ Do You Yahoo!? Everything you'll ever need on one web page from News and Sport to Email and Music Charts http://uk.my.yahoo.com -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]