Professional Web Applications Themes

question about ( () if () ) while (); - PERL Beginners

$ perl -e ' $entry = "willy"; (print "1") if (/$entry/) while ($_ = "will"); print "0"' syntax error at -e line 1, near ") while" Execution of -e aborted due to compilation errors. seperating the bits seems to work. it seems to break down when i want to use the if statement in combination with the while. using print to simulate return values. perhaps i should abandon this idiom and use a normal while () { if () { } } i am curious as to why this error crops up... thanks, willy http://www.hackswell.com/corenth...

  1. #1

    Default question about ( () if () ) while ();


    $ perl -e ' $entry = "willy"; (print "1") if (/$entry/) while ($_ = "will");
    print "0"'
    syntax error at -e line 1, near ") while"
    Execution of -e aborted due to compilation errors.




    seperating the bits seems to work. it seems to break down when i want to
    use the if statement in combination with the while.


    using print to simulate return values.


    perhaps i should abandon this idiom and use a normal

    while () {
    if () {

    }
    }


    i am curious as to why this error crops up...


    thanks,



    willy
    http://www.hackswell.com/corenth

    William Guest

  2. #2

    Default Re: question about ( () if () ) while ();

    On Aug 3, West, William M said:
     

    Check 'perldoc perlsyn'. It explains that the "statement modifiers",
    things like '... if CONDITION' and '... while CONDITION' are only allowed
    after *simple* statements -- what they really should say is "expressions".

    You're allowed to write

    print 1 if /willy/;

    because 'print 1' is an expression. You can't write

    print 1 if /willy/ while <FILE>;

    because 'print 1 if /willy' is not an expression, it's a statement.

    --
    Jeff "japhy" Pinyan % How can we ever be the sold short or
    RPI Acacia Brother #734 % the cheated, we who for every service
    http://japhy.perlmonk.org/ % have long ago been overpaid?
    http://www.perlmonks.org/ % -- Meister Eckhart

    Jeff Guest

  3. #3

    Default RE: question about ( () if () ) while ();

     

    well, this restriction has forced me to come up with:

    perl -e ' $entry = "willy"; (print /$entry/) while ($_ = "wil"); print "0"'


    in this test it ends up not getting to print "0", but with a match it works
    great :) i can apply it properly now when substituting a filehandle for
    the expression in the while.


    thank you!
     
    William Guest

Similar Threads

  1. Newbie Question: Biz Card Template Question
    By Thomas_Porter@adobeforums.com in forum Adobe Indesign Windows
    Replies: 4
    Last Post: May 30th, 08:08 AM
  2. Replies: 9
    Last Post: April 27th, 04:44 AM
  3. Pen Tool Use Question. (Embarrassingly Newbie Question)
    By Bozo Schmozo in forum Macromedia Flash
    Replies: 0
    Last Post: November 12th, 10:00 PM
  4. regexp question + html::pr question on the side
    By boris in forum PERL Miscellaneous
    Replies: 4
    Last Post: September 27th, 02:24 AM
  5. newB question: related tables question
    By Blue man in forum Microsoft SQL / MS SQL Server
    Replies: 1
    Last Post: June 30th, 04:13 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139