Sorry for the stupid question. Im taking an informatics class and know barely anything about PERL. I am trying to find the syntax error listed and I know its something stupid Im missing.

syntax error at nucleotide-counting2.pl line 190, near "elsif" Missing right curly or square bracket at nucleotide-counting2.pl line 295, at en d of line Execution of nucleotide-counting2.pl aborted due to compilation errors.

# # # The directives below enforce variable declarations and ensure your p +rogram # will be parsed to provide more feedback about possible syntax and lo +gical errors. # use strict; # enforce variable declarations use warnings; # enable warnings # # Declare/initialize all variables used in main program body. # my ($A_count) = 0; # number of 'a' or 'A' in user-supplied s +equence my ($base) = ''; # an extracted letter from the sequence my ($C_count) = 0; # number of 'c' or 'C' in user-supplied s +equence my ($filename) = ''; # the name of the file containing the inp +ut sequence(s) my (@filesequences) = (); # array containing lines read from input +file my ($G_count) = 0; # number of 'g' or 'G' in user-supplied s +equence my ($i) = 0; # used to index into array of sequences my ($line_count) = 0; # number of lines read from input file my ($option) = 0; # the user's selected menu option my ($position) = 0; # the current position within the sequenc +e my ($sequence) = ''; # the DNA sequence to be processed my ($T_count) = 0; # number of 't' or 'T' in user-supplied s +equence # # Display welcome message and program explanation. # print "\n *****************************************************"; print "\n ** **"; print "\n ** Nucleotide Counter, version 2.0 **"; print "\n ** **"; print "\n ** Written by J.M Wagner 2014 **"; print "\n ** **"; print "\n *****************************************************"; print "\n * *"; print "\n * This program will count the number of different *"; print "\n * nucleotides present in the sequence you provide. *"; print "\n * Both uppercase and lowercase abbreviations will *"; print "\n * be counted. Input can be provided at the *"; + print "\n * keyboard or can be read from a file. *"; print "\n * *"; print "\n * *"; print "\n *****************************************************"; print "\n\n\t Program options:"; print "\n\t -----------------------------"; print "\n\t 1. Enter sequence at keyboard"; print "\n\t 2. Read input sequences from a file"; print "\n\t 3. Exit"; print "\n\n Please enter your menu option>"; $option = <STDIN>; # # Confirm that user has entered a valid menu option. # while (($option < 1) or ($option > 3)) { chomp $option; print "\n ERROR: The value $option is not a valid menu option."; print "\n\n Please enter your menu option>"; $option = <STDIN>; } # end while # # Obtain input DNA sequence from user. # # ******************************************************************** +****** # OPTION 1 - Obtain and process input sentence provided at keyboard. # ******************************************************************** +****** if ($option == 1) { # # Obtain input DNA sequence from user. # print "\n\n Please enter the DNA Sequence to be processed"; print "\n >"; $sequence = <STDIN>; print "\n Processed DNA sequence: $sequence"; # # Count the number of nucleotides by processing the sequence of charac +ters # one character at a time. # for ($position = 0; $position < length($sequence); ++$position) { $base = substr($sequence, $position, 1); if (($base eq 'a') or ($base eq 'A') or ($base eq 'c') or ($base eq 'C') or ($base eq 'g') or ($base eq 'G') or ($base eq 't') or ($base eq 'T')) { if (($base eq 'a') or ($base eq 'A')) { ++$A_count; } # end if if (($base eq 'c') or ($base eq 'C')) { ++$C_count; } # end if if (($base eq 'g') or ($base eq 'G')) { ++$G_count; } # end if if (($base eq 't') or ($base eq 'T')) { ++$T_count; } # end if } # end if } # end for # # Display final results. # print "\n Number of A nucleotides: $A_count"; print "\n Number of C nucleotides: $C_count"; print "\n Number of G nucleotides: $G_count"; print "\n Number of T nucleotides: $T_count"; print "\n\n Program completed successfully.\n"; }end if # ******************************************************************** +****** # OPTION 2 - Obtain and process input sentences provided in user file. # ******************************************************************** +****** elsif ($option == 2) { # # Read input sequence(s) from file provided by user. # print "\n\n Please enter the filename>"; $filename = <STDIN>; unless(open(SEQUENCEFILE, $filename)) { print "\n\t --> ERROR: Cannot open file: $filename"; exit; } @filesequences = <SEQUENCEFILE>; close(SEQUENCEFILE); $line_count = @filesequences; print "\n\t --> NOTE: File opened -- $line_count lines of text read.\n +"; # print @filesequences; # # Count the number of nucleotides by processing the sequence of charac +ters # one sequence at a time. # for ($i = 0; $i < $line_count; ++$i) { # # Initialize $sequence to the next line of text from file. # $sequence = $filesequences[$i]; print "\n $i. Processed sequence: $sequence"; # # Count the number of nucleotides in the current sequence. # $position = 0; while ($position < length($sequence)) { $base = substr($sequence, $position, 1); if (($base eq 'a') or ($base eq 'A') or ($base eq 'c') or ($base eq 'C') or ($base eq 'g') or ($base eq 'G') or ($base eq 't') or ($base eq 'T')) { if (($base eq 'a') or ($base eq 'A')) { ++$A_count; } # end if if (($base eq 'c') or ($base eq 'C')) { ++$C_count; } # end if if (($base eq 'g') or ($base eq 'G')) { ++$G_count; } # end if if (($base eq 't') or ($base eq 'T')) { ++$T_count; } # end if ++$position; } # end while } # end for print "\n Number of A nucleotides: $A_count"; print "\n Number of C nucleotides: $C_count"; print "\n Number of G nucleotides: $G_count"; print "\n Number of T nucleotides: $T_count"; print "\n\n Program completed successfully.\n"; } # end elsif # # ******************************************************************** +****** # Write final results to default output file. # ******************************************************************** +****** $filename = "results.dat"; unless(open(OUTFILE, ">$filename")) { print "\n\t --> ERROR: Cannot open file: $filename"; exit; } print "\n\n\t --> NOTE: File opened for writing: $filename\n"; print OUTFILE "\n Total number of Adenine: $A_count"; print OUTFILE "\n Total number of Cytosine: $C_count"; print OUTFILE "\n Total number of Guanine: $G_count"; print OUTFILE "\n Total number of Thymine: $T_count"; close(OUTFILE); print "\n\n Program completed successfully.\n"; exit;

In reply to Syntax error by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.