I have a data file that looks like this: uSF1 MD15000000 009214935522451020 9 0101001 88722397N07209999900 116759 0Block Group 1 S 1158 662+39283007-076574503
uSF1 MD15000000 009215035522451020 9 0101002 88722397N07209999900 109338 0Block Group 2 S 842 547+39280857-076573636 uSF1 MD15000000 009215135522451020 9 0101003 88722397N07209999900 182248 135142Block Group 3 S 920 442+39279557-076574311 This is actually three lines that all start with 'uSF1'. This is the Summary File from the US 2000 Census. I want to print all the census tracts and blockgroup numbers for FIPS state code = "24" (Maryland) and FIPS county code "510" (Baltimore City) for summary level '150'. These are all fixed-length records. I tried: [EMAIL PROTECTED] UScensus]$ perl -ne '($tract, $bg) = /^.{8}150.{18}24510.{21}(.{6})(.)/; print "Tract $tract BLKGRP $bg\n";' mdgeo.uf1 |head Tract BLKGRP Tract BLKGRP Tract BLKGRP <snip> I thought that this would: skip 8 characters and match '150' skip 19 more characters and match '24' and '510' skip 21 more characters and capture the next 6 in $tract capture the next character in $bg and print them. The first two matches work, but nothing is captured. Any ideas what I'm doing wrong? Thanks for your help and advice. -Kevin Kevin Zembower Internet Services Group manager Center for Communication Programs Bloomberg School of Public Health Johns Hopkins University 111 Market Place, Suite 310 Baltimore, Maryland 21202 410-659-6139 -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/