On Thu, 2008-09-04 at 14:03 -0700, frazzmata wrote: > I have a problem > I am trying to take lines in a text file that look like this. although > there are 500 more or so (and they have more realistic names) > > 25727 dude, some M MEX.AMER. DORM1 > 25797 dude, other M BLACK DORM2 > 29291 guy, random M BLACK DORM3 > 30249 fella, helluva M BLACK DORM4 > 31139A brother, notmy M CAUC DORM5 > > Which is essentially, a student Id, last, first, sex, race, etc….. > > I am trying to use the following code to make the student id the key > and the whole line the value (including the student ID that I am using > as the key) > > So, an example would look like this on paper > > Key: Value: > $student{25727} = 25727 dude, some M MEX.AMER. > DORM1 > > And so on > > This is the code I’ve tried… > > my %longz; > > while (<IFILE>) { > chomp; > ($ya,$rest) = split(/^\s+/,$_); > $longz{$ya} = $rest; > } > > > My hope is to create a hash that I can use the student ids from > another list, and if that id is present in the other list to print the > value somewhere else. > However, I have the comparison code down… I think. > > My problem is the silly split on the $_ as it goes through the while > loop… > > Hope this makes sense. > > Keep in mind > The machine I am doing this on is not online, and it is a windows > machine. So I am using Activeperl with only the modules that come with > it. > > Help.. > > >
while( <IFILE> ){ if( /^\s*(\d+)/ ){ my $id = $1; $longz{$id} = $_; }else{ die "no ID in line $.: $_"; } } -- Just my 0.00000002 million dollars worth, Shawn "Where there's duct tape, there's hope." Cross Time Cafe "Perl is the duct tape of the Internet." Hassan Schroeder, Sun's first webmaster -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/