| |||||||||||
| |||||||||||
Reformatting question Posted by enquirer (enquirer), 3 November 2002 I want to parse some large files and put them into a format that will go into a database. Not every line has complete information. Some of the information is missing. I need to throw away the descriptions and leave behind the good info ....The file has lines that look like this: country=US:state=TX:city=Dallas:areacode=214:lat=42.5044:long=-71.1964:timezone=CST:etc... country=GB:state=EN:city=London:lat=51.50:long=151.22 I want US:TX ![]() GB:EN:London:none:51.50:151.22 Posted by admin (Graham Ellis), 3 November 2002 How about splitting each line at : and = into a hash:%line = ($wholeline =~ /([^:]+)=([^:]+)/g); then re-joining a list slice $newline = join(":",@line{country,state,city,lat}); Tried it out on your data - worked for me. Note the assignment of a regular expression match straight into a hash (it's very useful that the key and value come in that order in the match), and the use of a hash slice. This page is a thread posted to the opentalk forum
at www.opentalk.org.uk and
archived here for reference. To jump to the archive index please
follow this link.
|
| ||||||||||
PH: 01144 1225 708225 • FAX: 01144 1225 793803 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho |