in reply to Matching probem

Okay, so your first problem seems to be that you're not getting your input correctly. I've added strictand warnings and the commensurate mystatements, and then used Data::Dumperto show what you're collecting:

#!usr/bin/perl use strict; use warnings; use Data::Dumper qw(Dumper); my @car_list = (); open(INPFIL,"cars.dat") || die("Couldnt open the file \n"); while(<INPFIL>) { if(/^\s*CARS\s*[A-Z]/) { my ($car)=$_=/^\s*CARS\s*(\w+)/; push(@car_list,$car); } } print Dumper @car_list; exit;

The output shows you're collecting a bunch of 1s:

S:\Steve\Dev\PerlMonks\P-2017-05-29@0722-Cars-Arrays-Groups>perl cars0 +.pl $VAR1 = 1; $VAR2 = 1; $VAR3 = 1;

Nothing else matters until you fix that. This is a variant of what we used to, in the profession, call "garbage in, garbage out".

Now, I could tell you why you're collecting 1s instead of car manufacturers, but it's a good exercise for you to take a stab at explaining why.

What's your best guess(es)?