|
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, updated 2008-01-17)
Associated topics are indexed under P669 - Perl - Data Munging [3764] Shell, Awk, Perl of Python? - (2012-06-14) [3707] Converting codons via Amino Acids to Proteins in Perl - (2012-04-25) [3335] Practical Extraction and Reporting - (2011-06-26) [2702] First and last match with Regular Expressions - (2010-04-02) [2129] Nothing beats Perl to solve a data manipulation requirement quickly - (2009-04-14) [1947] Perl substitute - the e modifier - (2008-12-16) [1316] Filtering and altering Perl lists with grep and map - (2007-08-23) [597] Storing a regular expression in a perl variable - (2006-02-09)
5378
Some other Articles
Perl, PHP or Python? No - Perl AND PHP AND Python!Summer Ball at Bowood - Saturday 12th July 2008Buses from Well House Manor, Melksham, to BathHandling Binary data (.gif file example) in PerlExtracting information from a file of recordsHow not to write Perl?Comments on proposed Asda Superstore for MelkshamOngoing Image Copyright Issues, PHP and MySQL solutionsScript to present commonly used images - PHPFlooding by Asda-s proposed new supermarket
|
4083 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, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82 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).
|
|