in reply to pattern matching compilation errors

I am getting the following error. Are you getting the same one?
Can't locate warning.pm in @INC (...
OK, so change warning to warnings only to get the rest of the errors:
Global symbol "$filename" requires explicit package name at 2.pl line +7. Global symbol "$i" requires explicit package name at 2.pl line 16. Global symbol "$i" requires explicit package name at 2.pl line 16. Global symbol "$count" requires explicit package name at 2.pl line 16. Global symbol "$i" requires explicit package name at 2.pl line 16. Global symbol "@st" requires explicit package name at 2.pl line 18. Global symbol "$i" requires explicit package name at 2.pl line 18. Global symbol "@st" requires explicit package name at 2.pl line 19. Global symbol "@st" requires explicit package name at 2.pl line 19. Global symbol "$i" requires explicit package name at 2.pl line 21.
Seems like scoping problems. Here is the code fixed with explanation:
use strict; use warnings; # Already mentione +d. print "\n Enter The file name :>"; chomp(my $filename1 = <STDIN>); open(FILE,"<",$filename1) or die "\n...Cannot find the file: $filename1"; # Missing 1 at the + end of the message. open (W, "> Result.txt"); my @line; my $count; # To be declared o +utside the loop to survive. while (<FILE>) { push (@line, $_); $count++; # Using 'my' here +means $count is initialized } # to 0 in each ite +ration of the loop. print W $line [0]; for (my $i = 0; $i < $count; $i++) # $i was not decla +red { my @st = split (' ', $line [$i]); # @st was not decl +ared if (($st [4] eq /chr1/) && ($st [10] eq /chr1/)) { print W $line [$i]; } }
Now the code has no compilation errors. It probably still does not work, though. Happy debugging!