0

Perl サブルーチンがグローバル変数を使用している場合に警告を生成する方法はありますか?

#!/usr/bin/perl -w  
use strict;
my $GlobalVariable;

#  Main Start

#  Main End

sub  MyFunction
{
    my $LocalVariable;
    $GlobalVariable=1;

}

このコードでは、とにかく、PerlMyFunction()で使用していることを警告するために$GlobalVariable?

4

3 に答える 3

2

標準的な方法はuse strict 'vars';です。これを入力した後、グローバル変数(たとえば$main::GlobalVar)を完全に修飾する必要があります。そうしないと、Perlはコンパイル時エラーをスローします。

于 2012-04-26T21:58:32.647 に答える
1

はい。use strictローカルまたはグローバルとして明示的に宣言するか、名前を完全に修飾しない限り、変数にアクセスしようとする試みをキャッチします。tie現在のパッケージグローバルスコープ(結局のところハッシュです)にアクセスして、宣言された変数へのアクセスをキャッチすることもできますが、そうする正当な理由がたくさんあるため、お勧めしません(たとえば、からのすべての素晴らしいものperlodc perlvar) 。

于 2012-04-26T21:59:34.400 に答える
1

「Perl コードがグローバル変数を使用している場合に警告する」という意味であれば、これを行う事前定義された方法は現在のところないと思います。

非標準の Perl グローバル変数の使用を単に禁止したい場合は、CPAN の Devel::FindGlobals のようなものを使用してすべてのグローバル変数を取得し、非標準のグローバル変数が定義されている場合に警告することができます。

于 2012-04-27T12:12:11.657 に答える