Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??
If I am off the mark, here, I trust our local computer scientists will set me straight.

Quoth the Camel's glossary:


expression
Anything you can legally say in a spot where a value is required. Typically composed of literals, variables, operators, functions, and subroutine calls, not necessarily in that order.

statement
A command to the computer about what to do next, like a step in a recipe: "Add marmalade to batter and mix until mixed." A statement is distinguished from a declaration, which doesn't tell the computer to do anything, but just to learn something.


Similarly, Barron's Dictionary of Computer and Internet Terms says an expression is a series of symbols that can be evaluated to have a particular value, while a statement is a single instuction in a computer language.

In your example, then, 1+1 is actually the expression; it's not much of a statement, since it (normally) doesn't tell Perl to do anything meaningful.

$x = 1+1 is a statement, if you terminate it with a semicolon. It tells Perl to do something... evaluate the expression 1+1 and assign the result to $x.

It's not actually quite as clear cut as that, however. For instance, I believe 1+1 can qualify as a statement, as when you use it thus:

print two(),"\n"; sub two { 1+1 }

Here it's telling Perl that the return value of &two should be 2. Likewise, $x = 1+1 can be used as an expression:

perl -e 'print "Yup\n" if $x = 1+1;'

Here $x = 1+1 is used as an expression, with the conditional depending on its return value (which happens to be 2).

If this seems vague, remember that these terms are for your use, to help you express yourself. Whether you choose to call $x = 1+1 a statement or an expression tells us something of the way you're regarding it in the present context.


In reply to Re: What is the difference between a Statement and an Expression? by Petruchio
in thread What is the difference between a Statement and an Expression? by supernewbie

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!
  • 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, 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, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            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.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others making s'mores by the fire in the courtyard of the Monastery: (10)
    As of 2014-07-25 08:19 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      My favorite superfluous repetitious redundant duplicative phrase is:









      Results (170 votes), past polls