0

厳密なプラグマを使用しているときに、いくつかのグローバル変数を使用できるかどうか疑問に思っていました。

たとえば、私はこれをやろうとしました:

#!/usr/bin/perl -w

use strict;

sub print_global{
     print "your global is: $global\n";
}

$global = 1234;     #or even my $global = 1234;

print_global;

しかし、お気づきのとおり、それは機能しません。

厳密なプラグマを使用するときにグローバル変数を定義する方法はありますか? (もちろんあれば)

4

3 に答える 3

6

グローバルを使用する前に宣言するだけです。

our $global;

とは異なりmy、これは新しい変数を作成しませんが、変数をこのスコープで使用できるようにします。したがって、次のようなコードを安全に使用できます

sub print_global{
     our $global;  # does not create a new variable like `my` would
     print "your global is: $global\n";
}

our $global = 1234;

print_global;
于 2013-07-10T10:58:57.750 に答える
1

use strict;変数を強制的に宣言したいということを Perl に伝えますが、あなたはそうしませんでした。必要に応じて宣言を追加します。

#!/usr/bin/perl -w

use strict;

my $global;     # <----

sub print_global{
     print "your global is: $global\n";
}

$global = 1234;
print_global;
于 2013-07-10T11:32:51.287 に答える
1

my $global;関数の上で宣言すると、で動作しuse strict;ます。

于 2013-07-10T10:58:35.987 に答える