在OpenResty中需要避免全局变量的使用,为此春哥写了一个perl工具,可以扫描openresty lua代码的全局变量:
https://github.com/openresty/openresty-devel-utils/blob/master/lua-releng
#!/usr/bin/env perl
use strict;
use warnings;
use Getopt::Std;
my (@luas, @tests);
my %opts;
getopts('Lse', \%opts) or die "Usage: lua-releng [-L] [-s] [-e] [files]\n";
my $silent = $opts{s};
my $stop_on_error = $opts{e};
my $no_long_line_check = $opts{L};
my $check_lua_ver = "luac -v | awk '{print\$2}'| grep 5.1";
my $output = `$check_lua_ver`;
if ($output eq '') {
die "ERROR: lua-releng ONLY supports Lua 5.1!\n";
}
if ($#ARGV != -1) {
@luas = @ARGV;
} else {
@luas = map glob, qw{ *.lua lib/*.lua lib/*