Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re: It LOOKS right...

by ikegami (Pope)
on May 31, 2011 at 18:13 UTC ( #907518=note: print w/replies, xml ) Need Help??

in reply to It LOOKS right...

You would get that error if you had

$count = 0

instead of

$count = 0;


$count = 0 if ($count <= 20) { ^ | Error: semi-colon, postfix operator or infix operator expected

Next time, show the code you actually ran.

Re: Re: It LOOKS right...
by BIOM01 (Initiate) on Jun 01, 2011 at 02:22 UTC

    Um, lol, where to begin....

    Well, like I mentioned, I am pretty new. I am literally on page 36 of 'Learning Perl, 5th Edition'. And I did use -w in my code when trying out different things, yet I still received the same message as I showed in my original post. Read below, though.

    As for the / before usr, I didn't mean to sound like I was completely dismissing the idea, but I knew it wasn't that because all of my other programs work without it. If there is a reason why it would be different for one program and not the others, please tell me.

    Ikegami, sorry about the semicolon. I have a tendency to overview my posts, and I thought I had accidentally missed it. Turns out I did on the program, too. :P. But, this introduces a new problem. Hello world only prints once, but I want it to print 20 times and then the program to say "Wait...".

    Ig, I am running Ubuntu 11.04 and when I want to run a program I type in 'perl name.plx'.

    Also, thanks JavaFan and Ig for "defending" me, but the last thing I want to do is create hostilities between people.

      It wasn't just you they were defending, but rather a fundamental philosophy about how to treat newcomers to PerlMonks and newcomers to Perl.

      Also, our job as more experienced monks is to model good diagnostic and problem solving skills. Suggesting that X is the problem when X has nothing to do with the problem is hardly good modelling.

      Welcome to Perl and welcome to PerlMonks!

      As for wanting it to print 20 times, you'll need a for-loop for that rather than a simple "if" statement. "if" statements evaluate a condition just once. For loops repeat until a particular condition is met. See For Loops.

      If there is a reason why it would be different for one program and not the others,

      It's always wrong, but it doesn't give you trouble since you never use it.

      but I want it to print 20 times and then the program to say "Wait...".

      You need some kind of loop to do something repeatedly.

      #!/usr/bin/perl use strict; use warnings; print "Hello World!\n" for 1..20; print "Wait, that's it?\n";
      I type in 'perl name.plx'

      In this case, it doesn't matter what path you put in the shebang/#!/first line, though the options still matter - perl will process them. You can (and probably should) read more in perlrun.

      You may know that if you set execute permission on your script file you can run it with './name.plx' if it is in your current working directory or simply 'name.plx' if it is in one of the directories in your path. This can be convenient, but isn't necessary. If you want this to work, then you will have to have the path to your perl program in the first line, or use one of the "tricks" mentioned in perlrun.

      I hope you start using "use strict" and "use warnings". You might have a look at perllexwarn to learn more about what they do and how to control them (sometimes you want to do things without the warnings or compilation errors).

      If you want to print "Hello world" 20 times, use while instead of if, but TMTOWTDI. I might write your program something like this:

      use strict; use warnings; print "Hello World!\n" for (1..20); print "Wait, that's it?\n";
      Um, lol, where to begin....

      Great attitude :D

      Here is something you should see, splain/diagnostics (eventually , you'll want to read Use strict warnings and diagnostics or die aka Read this if you want to cut your development time in half!)

      $ cat foo.err.log syntax error at test.plx line 3, near ") {" syntax error at test.plx line 6, near "}" $ splain < foo.err.log syntax error at test.plx line 3, near ") {" (#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 S<20 questions>. syntax error at test.plx line 6, near "}" (#1)
      You've done good, you used code tags and paragraphs tags, but like others have noted, the code you posted literally will not emit that error. Well, not when run by perl, any version starting with 4 or 5 ( 5.12.2) :D

      For a question to be effective, the curtain (code) should match the drapes (error).

      On a related note, instead of It LOOKS right... an effective title might have been syntax error at test.plx line 3, near ") {"

        Yeah, I really did muck it up with the semicolon, didn't I? Haha. At least I'll remember my semicolons from now on. :D

        About the 'if' statement, ah. Lol. I think the fact that it is in the same chapter as the 'while loop' probably made me think it could do a loop-type function.

        I'll definitely look into all of the stuff that you guys have posted. It's nice to have some "guidance" of sorts on where to go and look for something, especially because no one I know knows this language. I've been stuck with books and google, which isn't always the best thing. And from now on all code posted by me shall include strict and warnings. :D As for the question name, I'll remember that next time, too. It's literally in my notes.

        Again, sorry for the muck up about the code, and it definitely won't happen again.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://907518]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (1)
As of 2018-02-23 01:07 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (300 votes). Check out past polls.