in reply to How to get rid of the errors in my perl script

$line is a scalar variable that you declare in line 9. $line[$i] is an element of an array named @line, which is a totally different (undeclared) variable that has no relationship to the scalar named $line.

The scalar variable $i makes its first appearance in your script in line 11. What value is it supposed to contain? If you don't declare it, and don't assign it a value, it's probably not going to do what you need it to do.

You're missing a semicolon after the substr(...) call on line 14. (It's usually a good idea to look at the line right above where syntax errors are reported.)

Finally: Install perltidy and pass your script through it. Judicious use of white-space makes code more readable, and errors easier to detect.

These only address the superficial issues: the error messages you're seeing. Once you fix those issues, it becomes time to debug the logic.


Dave

Replies are listed 'Best First'.
Re^2: How to get rid of the errors in my perl script
by Anonymous Monk on Aug 01, 2012 at 08:18 UTC
    open (my $fhConditions, "<a.txt"); my $l=6; open (my $read, "<b.txt"); my @e = <$read>; my $d = join('', @e ); $d =~ s/\s+//g; while (<$fhConditions>) { push (my @line, $_); $count++; } for ($i = 0; $i < $count; $i++) { my @pos = my $line[$i] =~ /chr*\s+(.+?)\s/g; if($pos[0] =~/[0-9]/) { my $match = substr($d,$pos[0],$l); print "$line[$i]" if $match =~m/AAGCTT/; } if($pos[1] =~/[0-9]/) { my $a = $pos[0]-$l; my $match = substr($d,$a,$l); print "$line[$i]" if $match =~m/AAGCTT/; } }
    this the code modified after the suggestions. but still i am getting some error
    yntax error at restriction.pl line 13, near "$line[" Execution of restriction.pl aborted due to compilation errors.

      You should remove my from line 13. It doesn't belong there and is causing this error.