http://qs321.pair.com?node_id=1191497


in reply to Matching probem

Hello again, Nansh.

I'm noticing a trend in your posts and would like to help you help us help you.

It would be most helpful if you provided four things (you got two of them) in your questions:

  1. Sample code
  2. Sample input
  3. Expected output
  4. Actual output (including any error messages, warnings, diagnostics, etc.)

And please, for the love of Perl, please

use strict; use warnings;

For example:


Hi,

Hello, My file looks like below:

CARS TOYOTO Etios Innova Camry +Fortuner Corolla *.This is Class cars. CARS HYUNDAI Verna i10 i20 +Eon Xcent +Tucson *.It is best cars. CARS HONDA City Brio Amaze +Accord *.This is Luxury cars.

In my above file example under Toyoto what are all the cars are there that will come. same way in Honda and Hyundai as well.

I need to do the following:

  1. Match the car companies and put that in an array.
  2. For each of that car company, match the cars and put them in other array

For that my code is like below:

#!usr/bin/perl use strict; use warnings; use Data::Dumper qw(Dumper); open(DATA,"/something/something/something") || die("Couldnt open the + file \n"); while(<DATA>) { if(/^\s*CARS\s*[A-Z]/) { ($car)=$_=/^\s*CARS\s*(\w+)/; push(@car_list,$car); } } foreach $one_car(@car_list) { open(DATA,"/something/something/something")|| die("Couldnt open th +e file \n"); while(<DATA>) { if(/^\s*CARS\b$one_car\b/) { last if/\*\.(\w+)/; $/="*"; $data_next=<DATA>; print"$data_next\n"; $/="\n"; } } }

I am expecting the output to look like this:

(Here is where you show us what you were expecting)

But instead, I'm getting this:

(Here is where you show us what you actually got, including any error messages)

If you start posting your questions this way, I think you'll find you get better quality answers. Also, by forcing yourself to think along these structured pathways, I think you'll find you learn Perl more quickly.