OK, so change warning to warnings only to get the rest of the errors:Can't locate warning.pm in @INC (...
Seems like scoping problems. Here is the code fixed with explanation: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.
Now the code has no compilation errors. It probably still does not work, though. Happy debugging!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]; } }
In reply to Re: pattern matching compilation errors
by choroba
in thread pattern matching compilation errors
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |