diff options
-rw-r--r-- | pygments/lexers/agile.py | 4 | ||||
-rw-r--r-- | tests/examplefiles/perl_misc | 62 |
2 files changed, 65 insertions, 1 deletions
diff --git a/pygments/lexers/agile.py b/pygments/lexers/agile.py index 264983f8..4b2a3792 100644 --- a/pygments/lexers/agile.py +++ b/pygments/lexers/agile.py @@ -893,7 +893,9 @@ class PerlLexer(RegexLexer): (r'0_?[0-7]+(_[0-7]+)*', Number.Oct), (r'0x[0-9A-Fa-f]+(_[0-9A-Fa-f]+)*', Number.Hex), (r'0b[01]+(_[01]+)*', Number.Bin), - (r'\d+', Number.Integer), + (r'(?i)(\d*(_\d*)*\.\d+(_\d*)*|\d+(_\d*)*\.\d+(_\d*)*)(e[+-]?\d+)?', Number.Float), + (r'(?i)\d+(_\d*)*e[+-]?\d+(_\d*)*', Number.Float), + (r'\d+(_\d+)*', Number.Integer), (r"'(\\\\|\\'|[^'])*'", String), (r'"(\\\\|\\"|[^"])*"', String), (r'`(\\\\|\\`|[^`])*`', String.Backtick), diff --git a/tests/examplefiles/perl_misc b/tests/examplefiles/perl_misc new file mode 100644 index 00000000..e6dbfb28 --- /dev/null +++ b/tests/examplefiles/perl_misc @@ -0,0 +1,62 @@ +#!/usr/bin/perl + +# from http://gist.github.com/485595 +use strict; +use warnings; +use Time::HiRes 'usleep'; + +for (1..5) { + open my $in, '<', '/proc/sys/kernel/random/entropy_avail' or die; + print <$in>; + close $in; + usleep 100_000; +} + +# other miscellaneous tests of numbers separated by _ +#usleep 100_000; +100_000_000; +my $nichts = 0.005_006; +print "$nichts\n"; +my $nichts2 = 0.005_006_007; +print 900_800_700.005_006_007, $/; + +# numbers from `man 1 perlnumber` +my $n; +$n = 1234; # decimal integer +$n = 0b1110011; # binary integer +$n = 01234; # octal integer +$n = 0x1234; # hexadecimal integer +$n = 12.34e-56; # exponential notation +$n = "-12.34e56"; # number specified as a string +$n = "1234"; # number specified as a string + +# other numbers +for ( + -9876, + +8765, + -9876.02, + -9876.02e+10, + +765_432e30, + 2002., + .2002, +) { + print $_, "\n"; +} + +# operators on numbers +for ( + $n + 300, + $n - 300, + $n / 300 + 10, + $n * 250 / 2.0, + $n == 100, + $n != 100, + $n > 100, + $n >= 100, + $n < 100, + $n <= 100, + $n % 2, + abs $n, +) { + print $_, "\n"; +} |