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/