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

Re: Never lock $0 inside of a BEGIN block

by Abigail-II (Bishop)
on May 21, 2003 at 18:58 UTC ( #259840=note: print w/ replies, xml ) Need Help??


in reply to Never lock $0 inside of a BEGIN block

This example here would have been much easier to figure out if it showed the last line, or the line where the quote began.

Two things: it's not feasable to determine where a quote is missing, and hence where the unterminated string begins. However, in many occasions, perl manages to make an educated guess that's often quite right.

Furthermore, I completely disagree with your statement Perl has miserable error messages. Perl errors seldom baffle me, and usually it's immediate clear where the problem is. In cases where it's not clear, it's almost always me not spotting the error instead of perl being wrong.

Abigail


Comment on Re: Never lock $0 inside of a BEGIN block
Re: Re: Never lock $0 inside of a BEGIN block
by demerphq (Chancellor) on May 21, 2003 at 20:51 UTC

    Furthermore, I completely disagree with your statement Perl has miserable error messages.

    Blush. Im sorry. Misserable is much stronger than I would have said if it werent for the bizarreness of this scenario.

    it's not feasable to determine where a quote is missing, and hence where the unterminated string begins. However, in many occasions, perl manages to make an educated guess that's often quite right.

    Why isnt it possible to determine where the quoted string began? Why does it have to "guess"?


    ---
    demerphq

    <Elian> And I do take a kind of perverse pleasure in having an OO assembly language...
      Misserable is much stronger than I would have said if it werent for the bizarreness of this scenario.

      Well, you were generalizing. The following remark isn't limiting itself to a specific scenario:

      On a bit of a grumble side, IMO one of Perls biggest weaknesses is its absolutely terrible error reporting. The messages are usually misleading and often just plain old wrong.

      Why isnt it possible to determine where the quoted string began? Why does it have to "guess"?
      Because in most cases, a program consists of more than one string. Say you have 20 double quoted strings in your program, and you forget to close one of them. So, Perl sees 49 quotes. How's perl to know which 20 of them start a string, if it cannot assume the sequence is "start string", "end string"? After all, strings can contain newlines.

      Abigail

        Say you have 20 double quoted strings...So, Perl sees 49 quotes.

        No wonder the poor thing is confused:)


        Examine what is said, not who speaks.
        "Efficiency is intelligent laziness." -David Dunham
        "When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://259840]
help
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: (12)
As of 2014-10-23 20:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (128 votes), past polls