develooper Front page | perl.perl5.porters | Postings from September 2013

[perl #119987] misleading diagnostic for y() function call

Thread Next
From:
Victor Efimov
Date:
September 24, 2013 19:20
Subject:
[perl #119987] misleading diagnostic for y() function call
Message ID:
rt-3.6.HEAD-1873-1380050440-483.119987-75-0@perl.org
# New Ticket Created by  Victor Efimov 
# Please include the string:  [perl #119987]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=119987 >


related old ticket: https://rt.perl.org/rt3/Ticket/Display.html?id=30045
prior to 5.12 errors related to y() call have some useful error message.
but not now.

$cat 1.pl

use diagnostics;
sub y {};
y(1);

$ perlbrew exec --with perl-5.10.1 perl 1.pl
perl-5.10.1
==========
Transliteration replacement not terminated at 1.pl line 3 (#1)
    (F) The lexer couldn't find the final delimiter of a tr///, tr[][],
    y/// or y[][] construct.

Uncaught exception from user code:
        Transliteration replacement not terminated at 1.pl line 3.
 at 1.pl line 3

$ perlbrew exec --with perl-5.19.4 perl 1.pl
perl-5.19.4
==========
syntax error at 1.pl line 4, at EOF
  (Might be a runaway multi-line ;; string starting on line 3)
Execution of 1.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 syntax
    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 tokens
    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 see
    if the error went away.  Sort of the cybernetic version of 20 questions.

Uncaught exception from user code:
        syntax error at 1.pl line 4, at EOF
          (Might be a runaway multi-line ;; string starting on line 3)
        Execution of 1.pl aborted due to compilation errors.

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About