Training, Open Source computer languages

PerlPHPPythonMySQLhttpd / TomcatTclRubyJavaC and C++LinuxCSS

Search our site for:
Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
Extracting information from a file of records
Here's a very common application ...

You file a file of data records, and you want to parse the file handing the data record by record. Each record has a series of space delimited fields, most of which are no interest to you what so ever ...

And a template for a solution in Perl.

open (FH,--put file name here in quote--) or --handle error--
while ($report = <FH>) {
# Using list slices of anonymous lists to extract data
# $report = ("192.168.200.67 e-w-f graham mac 2005 17 Tiger mucky");
($cpuname,$yop) = (split(/\s+/,$report))[1,4];
print "$yop - $cpuname\n"; }


I dare say you were expecting a long example there, but in Perl I've done the whole thing in just six lines - and two of THEM are comments. The trick comes in the use of anonymous list slices:

(split(/\s+/,$report))[1,4];

"Take the string in $report. Divide it into a series of chunks, delimted at white space. But I'm only interested in returned fields 2 and 5 (i.e. numbers 1 and 4 because we start counting at zero).

Taking the data sample line I've included in my program sample, just the host computer name and the year of purchase are returned. No need for me to throw away explicitly the fields I don't want, and using
($cpuname,$yop) =
I can even assign each returned element to an appropriate scalar.

I might not do Perl as much as I used to , but I'm sure enjoying presenting the Perl Course this week!
(written 2008-01-16 14:23:22)

 
Associated topics are indexed under
P669 - Perl - Data Munging

Back to
How not to write Perl?
Previous and next
or
Horse's mouth home
Forward to
Handling Binary data (.gif file example) in Perl

Some other Articles
Perl, PHP or Python? No - Perl AND PHP AND Python!
Summer Ball at Bowood - Saturday 12th July 2008
Buses from Well House Manor, Melksham, to Bath
Handling Binary data (.gif file example) in Perl
Extracting information from a file of records
How not to write Perl?
Comments on proposed Asda Superstore for Melksham
Ongoing Image Copyright Issues, PHP and MySQL solutions
Script to present commonly used images - PHP
Flooding by Asda-s proposed new supermarket
1633 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 at 50 posts per page


This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

© WELL HOUSE CONSULTANTS LTD., 2008: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 707126 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho