how to search through file for certain criteria

R

richjungk

guys i really need help!!!
i'm a beginner in perl language.
for my code i want to look for matching criteria.


Here is an example of the contents of the file.

c_c_flag::
survey28::2
driver1_G2_date_month::12
driver1_student::N
current_amount::6700
driver1_suspensionstart_year::2004
p1::5217
car1_comprehensive_coverage::0
driver1_conviction_1_month::01
p2::6740
driver1_conviction_1_year::2005
c1::KNGN
postal_code_2::1L

As you can see, each line contains a pair of strings separated by
'::'

i need to open the file and process it line by line, and figuring out
how many driver profiles are stored in the file and store this in an
array.
Put the array values into a hash to make them unique, and put the hash
back into an array.

Close the file.

Reopen the file and loop through the array and create hashes for each
driver to provide the following aggregate information:

Number of:
male drivers under age 25 with a conviction
female drivers under age 25 with a conviction

and, here is my code that i did so far..............

#!/urs/bin/perl -w

my %DATA;
my $dnum;
my $conviction;

chdir("directory path") or die;

open(FH, "ID1234.txt") or die "$!\n";

while(<FH>){
if($_ =~ / (driver \d ) / ) { # $1 is first match
push @drivers, $1;
}
}
close FH or die;

foreach(@drivers){
$D{"$_")++;
}

@sorts = sort(keys(%D)); # "driver1" "%D"

foreach(@sorts){
open *FH, "ID1234.txt") or die;

$dnum = $_ ;

while(<FH>){
if($_ =~ / $dnum( _conviction ) / ){
$conviction = $1;
}
}
close FH or die;
}


from now on, how to i search for criteria for

Number of:
male drivers under age 25 with a conviction
female drivers under age 25 with a conviction
 
J

John W. Krahn

guys i really need help!!!
i'm a beginner in perl language.
for my code i want to look for matching criteria.


Here is an example of the contents of the file.

c_c_flag::
survey28::2
driver1_G2_date_month::12
driver1_student::N
current_amount::6700
driver1_suspensionstart_year::2004
p1::5217
car1_comprehensive_coverage::0
driver1_conviction_1_month::01
p2::6740
driver1_conviction_1_year::2005
c1::KNGN
postal_code_2::1L

As you can see, each line contains a pair of strings separated by
'::'

i need to open the file and process it line by line, and figuring out
how many driver profiles are stored in the file and store this in an
array.
Put the array values into a hash to make them unique, and put the hash
back into an array.

Close the file.

Reopen the file and loop through the array and create hashes for each
driver to provide the following aggregate information:

Number of:
male drivers under age 25 with a conviction
female drivers under age 25 with a conviction

I don't see any records that show the sex or age of the driver so you probably
can't do that.



John
 
R

richjungk

here is all contents in file (file name is ID1234.txt)

c_c_flag::
survey28::2
driver1_G2_date_month::12
driver1_student::N
current_amount::6700
driver1_suspensionstart_year::2004
p1::5217
car1_comprehensive_coverage::0
search_alternative_coverage::N
car1_liability_coverage::500
car1_stats::No
renew::July
client_phone3::7509
driver1_status::S
driver1_conviction_1_month::01
p2::6740
driver1_conviction_1_year::2005
c1::KNGN
driver1_birth_month::03
driver1_license::G
car1_km::0
LANG::
driver1_insured::2000
driver1_sex::M
postal_code_2::1L5
driver1_suspensionend_year::2004
driver1_convictions::1
driver1_suspensionend_month::08
c3::RBC
b_c_flag::
HabDateCompany_month::01
city::BRAMPTON
driver1_convictiontype_1::Criminal=CD
driver1_insured_now::Y
how_find::Sun Newspaper
current_company::echelon
car1_annual_mileage::10000
car1_drivers::1
rate_alert_period::30
driver1_training::Y
postal_code::L6P
driver_number::1
driver1_claims::0
client_phone2::888
driver1_license_date_month::12
car_number::1
driver1_birth_day::15
car1_annual_mileage_business::0
driver1_G1_date_year::1999
driver1_G1_date_month::03
driver1_nonpayment::0
driver1_suspensionstart_month::05
p3::8973
car1_make::ACURA
client_name::Stan Duhan
c2::pAF
car1_collision_coverage::0
driver1_suspension::Y
car1_model::INTEGRA RS 2DR
client_email::[email protected]
driver1_birth_year::1983
driver1_license_date_year::2003
car1_primary::1
client_phone1::416
driver1_first_name::Stan
driver1_retired::N
HabDateCompany_year::Not Applicable
car1_year::1991
driver1_G2_date_year::1999
AssumeMultiLine::N
car1_use::p
 
T

Tad McClellan

guys i really need help!!!


Then you should take some care to avoid wearing out your welcome
on your very first post.

and, here is my code that i did so far..............


It is not Perl code!

#!/urs/bin/perl -w
^^^
^^^

Is this your real code?

Probably not. So then, are you wasting our time by having us
debug a program that does not even exist?

Probably.

That is Not Good.

foreach(@drivers){
$D{"$_")++;
^ ^
^ ^

If you open with a curly, then you should close with a curly.

See also:

perldoc -q vars

What's wrong with always quoting "$vars"?

open *FH, "ID1234.txt") or die;
^
^

Where is the opening parenthesis?


I am now quite sure that you have a lack of respect for the
hundreds of people here. You are on your own.

So long!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top