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.

Full log


View this message in rfc822 format

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: jidanni <at> jidanni.org
Cc: 5064 <at> debbugs.gnu.org
Subject: 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



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.