【发布时间】:2021-12-08 00:17:15
【问题描述】:
我有一个 perl 文件,其中一些函数是使用特殊语法 (Mojolicious) 定义的:
$app->helper('helper1' => sub {
print "Hello 1";
});
$app->helper("helper2" => sub {
print "Hello 2";
});
$app->helper(helper3 => sub {
print "Hello 3";
});
helper1();
helper2();
helper3();
我设法创建了 Perl 正则表达式来捕获这些定义:
#!/usr/bin/perl
use strict;
use warnings;
use File::Slurp 'read_file';
my $code = read_file('helpers.pl');
my @matches = $code =~ /\$app\->helper\(['"]?(.*?)['"]? => sub/g;
foreach(@matches)
{
print "$_\n";
}
输出:
helper1
helper2
helper3
但我尝试在 etags 中使用它失败了;
etags -l perl --regex="/\$app\->helper\\\(['\"]\(.*?\)['\"] => sub/" ./helpers.pl
给出一个空的 TAGS 文件。怎么了?
【问题讨论】:
标签: regex perl exuberant-ctags