Hi Chris Simplifying sub displayResults is a Good Thing. It should actually be:
sub displayResults { print __LINE__ . "sub displayResults\n"; } but it should compile as it is, yet the parser's still complaining about it. I would guess that there's something wrong with the lines immediately preceding this subroutine. Don't worry about anything but the first error. If you've got something like a mismatched brace (and I believe you have because your final error is 'syntax error near "}"') this will throw the scoping out anyway and confound the parser completely. Cheers, Rob "Christopher D . Lewis" <[EMAIL PROTECTED]> wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > > On Tuesday, January 7, 2003, at 10:31 AM, Peter Scott wrote: > > > [EMAIL PROTECTED] (Christopher D . Lewis) writes: > >> My problem is that the errors Perl coughs up end with: > >> > >> syntax error at ./nudice-01c line 187, near "sub displayResults " > >> syntax error at ./nudice-01c line 305, near "sub rollRequest" > >> syntax error at ./nudice-01c line 325, near "while @rawRollArray" > >> syntax error at ./nudice-01c line 457, near "}" > >> Execution of ./nudice-01c aborted due to compilation errors. > >> > >> This would be all well and good, except that every text editor I point > >> at my program agrees that the actual line count ends at 304. > >> > >> Ideas? > > > > What line numbers do your text editors say the above statements are > > actually on? > > > > Sprinkle a few > > > > print __LINE__; > > > > statements around and see what Perl thinks the line numbers are. > > I replaced the entirety of sub displayResults with: > > sub displayResults { print __line__ . "sub displayResults"; } > > (both to get Perl's idea of the line numbers, and to implement another > suggestion I replace contents of problem subroutines with simple code > to track down bugs) > > and my errors went from: > chris% ./nudice-01c > "my" variable $labelThrow masks earlier declaration in same scope at > ./nudice-01c line 193. > "my" variable @requests masks earlier declaration in same statement at > ./nudice-01c line 193. > "my" variable $requestNumber masks earlier declaration in same > statement at ./nudice-01c line 193. > "my" variable $labelThrow masks earlier declaration in same scope at > ./nudice-01c line 195. > "my" variable @requests masks earlier declaration in same scope at > ./nudice-01c line 195. > "my" variable $requestNumber masks earlier declaration in same scope at > ./nudice-01c line 195. > "my" variable $labelThrow masks earlier declaration in same scope at > ./nudice-01c line 197. > "my" variable @requests masks earlier declaration in same scope at > ./nudice-01c line 197. > "my" variable $requestNumber masks earlier declaration in same scope at > ./nudice-01c line 197. > "my" variable @requests masks earlier declaration in same statement at > ./nudice-01c line 197. > "my" variable $requestNumber masks earlier declaration in same > statement at ./nudice-01c line 197. > syntax error at ./nudice-01c line 187, near "sub displayResults " > syntax error at ./nudice-01c line 305, near "sub rollRequest" > syntax error at ./nudice-01c line 325, near "while @rawRollArray" > syntax error at ./nudice-01c line 457, near "}" > Execution of ./nudice-01c aborted due to compilation errors. > > to the more modest: > chris% ./nudice-01c > syntax error at ./nudice-01c line 187, near "sub displayResults " > syntax error at ./nudice-01c line 189, near "sub rollRequest" > syntax error at ./nudice-01c line 209, near "while @rawRollArray" > syntax error at ./nudice-01c line 341, near "}" > Execution of ./nudice-01c aborted due to compilation errors. > > So, now that I know all the variable problems are in displayResults > despite the line numbers being off, I can start looking outside > displayResults for the other errors. I note in passing that I can't > find a bunch of "my labelThrow" masking one another, as in > displayResults I make the label for each throw using: > my $labelThrow; # Identifies throw type for table readers > # Calculates Label for "Throw" > $labelThrow .= $requests[$requestNumber]{"numDicePerThrow"} if > $requests[$requestNumber]{"numDicePerThrow"} > 1; # Puts numDice in > throw's label if > 1 > $labelThrow .= "d" . $requests[$requestNumber]{"numSidesPerDie"}; # > Puts Die size > $labelThrow .= $requests[$requestNumber]{numAddedToThrow} if > $requests[$requestNumber]{numAddedToThrow};#Puts numAddedToThrow in > throw's labal if nonzero > > Does anyone spot what I'm doing wrong in trying to build a this label's > contents in this way? > > Note that I have no idea at all what I'm doing with these data > structures, what's why it is "practice" :-) > > Many thanks, > Chris > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]