GNU bug report logs - #5064
23.1.50; perl mode coloring gone if subroutine name is one letter long

Previous Next

Package: emacs;

Reported by: jidanni <at> jidanni.org

Date: Sat, 28 Nov 2009 02:50:03 UTC

Severity: normal

Fixed in version perl-doc/5.10.1-8

Done: jidanni <at> jidanni.org

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 5064 in the body.
You can then email your comments to 5064 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#5064; Package emacs. (Sat, 28 Nov 2009 02:50:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to jidanni <at> jidanni.org:
New bug report received and forwarded. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Sat, 28 Nov 2009 02:50:04 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: jidanni <at> jidanni.org
To: emacs-pretest-bug <at> gnu.org
Subject: 23.1.50; perl mode coloring gone if subroutine name is one letter long
Date: Sat, 28 Nov 2009 09:41:40 +0800
Gentlemen, consider the following perl subroutines.
Notice how the latter has all its coloring gone, just because it starts
with one letter. (perl-mode)^X^E

sub max {
    my $max = shift(@_);
    foreach $foo (@_) {
        $max = $foo if $max < $foo;
    }
    return $max;
}
sub m {
    my $max = shift(@_);
    foreach $foo (@_) {
        $max = $foo if $max < $foo;
    }
    return $max;
}



Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#5064; Package emacs. (Sat, 28 Nov 2009 19:50:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to Stefan Monnier <monnier <at> iro.umontreal.ca>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Sat, 28 Nov 2009 19:50:05 GMT) Full text and rfc822 format available.

Message #10 received at 5064 <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: jidanni <at> jidanni.org
Cc: 5064 <at> debbugs.gnu.org
Subject: Re: bug#5064: 23.1.50; perl mode coloring gone if subroutine name is one letter long
Date: Sat, 28 Nov 2009 14:41:03 -0500
> Gentlemen, consider the following perl subroutines.
> Notice how the latter has all its coloring gone, just because it starts
> with one letter. (perl-mode)^X^E

> sub max {
>     my $max = shift(@_);
>     foreach $foo (@_) {
>         $max = $foo if $max < $foo;
>     }
>     return $max;
> }
> sub m {
>     my $max = shift(@_);
>     foreach $foo (@_) {
>         $max = $foo if $max < $foo;
>     }
>     return $max;
> }

Actually, the problem is not really that it's only one letter, but that
it's the "keyword" m, used for matching (as in "m/regexp/").  Of course
the same can happen with other keywords like "s", "tr", "y", "q", "qx",
and various others.

I'm not sure if such a function definition is valid.  Does Perl accept
it and can you actually call this function?


        Stefan



Reply sent to jidanni <at> jidanni.org, 558428 <at> bugs.debian.org:
You have taken responsibility. (Sat, 28 Nov 2009 20:40:05 GMT) Full text and rfc822 format available.

Notification sent to jidanni <at> jidanni.org:
bug acknowledged by developer. (Sat, 28 Nov 2009 20:40:07 GMT) Full text and rfc822 format available.

Message #15 received at 5064-close <at> emacsbugs.donarmstrong.com (full text, mbox):

From: jidanni <at> jidanni.org
To: submit <at> bugs.debian.org
Subject: Bug#558428: mention that perl can't deal with certain one letter subroutines
Date: Sun, 29 Nov 2009 04:23:07 +0800
X-debbugs-cc: 5064-close <at> debbugs.gnu.org, monnier <at> iro.umontreal.ca
Package: perl-doc
Version: 5.10.1-8
Severity: wishlist
File: /usr/share/man/man1/perlsub.1.gz
Tags: upstream

Dear Perl guys: On the perlsub man page, please mention near:

       Subroutines whose names are in all upper case are reserved to the
       Perl core, as are modules whose names are in all lower case.

that sub m {...}
won't work too.

SM> Actually, the problem is not really that it's only one letter, but that
SM> it's the "keyword" m, used for matching (as in "m/regexp/").  Of course
SM> the same can happen with other keywords like "s", "tr", "y", "q", "qx",
SM> and various others.





bug archived. Request was from Debbugs Internal Request <bug-gnu-emacs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 27 Dec 2009 12:24:02 GMT) Full text and rfc822 format available.

This bug report was last modified 15 years and 183 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.