in reply to pattern matching compilation errors

choroba did a great job fielding some of your coding issues. With some repeats, here's the following:

use strict; use warnings; #<<-- warnings print "\n Enter The file name :>"; chomp( my $filename1 = <STDIN> ); open( FILE, "<", $filename1 ) or die "\n...Cannot find the file: $filename1"; #<<-- $filename1" open( W, "> Result.txt" ); my @line; while (<FILE>) { push( @line, $_ ); my $count++; } print W $line[0]; for ( my $i = 0 ;$i < $count ;$i++ ) #<<-- my $i; $count, from above, +has dropped outside of scope and is now undefined. Update: use $i < $ +#line+1 { my @st = split( ' ', $line[$i] ); #<<-- my @st if ( ( $st[4] eq /chr1/ ) && ( $st[10] eq /chr1/ ) ) { print W $line[$i]; } }

Consider the following reworking (untested):

use Modern::Perl; print "\n Enter the file name :>"; chomp( my $filename1 = <STDIN> ); open my $fh, '<', $filename1 or die "Cannot find the file $filename1: +$!"; my @line = <$fh>; close $fh; open my $w, '>', 'Result.txt' or die "Cannot open the file Result.txt: + $!"; print $w $line[0]; for (@line) { my ( $fourth, $tenth ) = ( split ' ' )[ 4, 10 ]; print $w $_ if $fourth eq 'chr1' and $tenth eq 'chr1'; # did you mean $fourth =~ /chr1/ and $tenth =~ /chr1/ } close $w;

Hope this helps!