http://qs321.pair.com?node_id=1165910

reichktr has asked for the wisdom of the Perl Monks concerning the following question:

I am beginer to this language and my first code is giving me syntax error, please help code:

use strict; use warnings; use diagnostics; my $hero = 'Ovid'; my $fool = $hero; print "$hero isn't that much of a hero. $fool is a fool.\n"; $hero = 'anybody else'; print "$hero is probably more of a hero than $fool.\n" my %snacks = ( stinky => 'limburger', yummy => 'brie', surprise => 'soap slices', ); my @cheese_tray = values %snacks; print "our cheese tray will have: "; for my $cheese (@cheese_tray) { print "'$cheese' "; } print "\n";

error:

@cisnet:~/kodzo_perl/chapter3$ perl example.pl syntax error at example.pl line 12, near "my " Global symbol "%snacks" requires explicit package name (did you forget + to declare "my %snacks"?) at example.pl line 12. Global symbol "%snacks" requires explicit package name (did you forget + to declare "my %snacks"?) at example.pl line 17. Execution of example.pl aborted due to compilation errors (#1) (F) Probably means you had a syntax error. Common reasons include +: A keyword is misspelled. A semicolon is missing. A comma is missing. An opening or closing parenthesis is missing. An opening or closing brace is missing. A closing quote is missing. Often there will be another error message associated with the synt +ax error giving more information. (Sometimes it helps to turn on -w. +) The error message itself often tells you where it was in the line +when it decided to give up. Sometimes the actual error is several toke +ns before this, because Perl is good at understanding random input. Occasionally the line number may be misleading, and once in a blue + moon the only way to figure out what's triggering the error is to call perl -c repeatedly, chopping away half the program each time to se +e if the error went away. Sort of the cybernetic version of 20 ques +tions. Uncaught exception from user code: syntax error at example.pl line 12, near "my " Global symbol "%snacks" requires explicit package name (did yo +u forget to declare "my %snacks"?) at example.pl line 12. Global symbol "%snacks" requires explicit package name (did yo +u forget to declare "my %snacks"?) at example.pl line 17. Execution of example.pl aborted due to compilation errors.