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)?
In reply to Re: Matching probem
by marinersk
in thread Matching probem
by Nansh
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |