找到子程序的最后一个"}"

sid*_*com 2 regex perl parsing module subroutine

假设我有一个带Perl代码的文件:有人知道,如果有一个模块可以找到该文件中某个子例程的结束"}".例如:

#!/usr/bin/env perl
use warnings;
use 5.012;

routine_one( '{°^°}' );

routine_two();

sub routine_one {
    my $arg = shift;
    if ( $arg =~ /}\z/ ) {
    say "Hello my }";
    }
}

sub routine_two {
    say '...' for 0 .. 10
}
Run Code Online (Sandbox Code Playgroud)

该模块应该能够删除整个routine_one,或者它应该可以告诉我该例程中结束"}"的行号.

小智 12

如果要解析Perl代码,则需要使用PPI.