0
パッケージを理解しようとすると、local
、my
、およびperlのリファレンス。私はq()
の呼び出しの各数を返すことを期待するが、私は、彼らが返すべきかわからないんだけど...Cのファイルスコープ変数と同等のPerlは何ですか?また、サブファイルで使用する方法は?
package z;
$x = 5;
sub q() { return $z::x };
printf "q() .. %d\n", q();
my $xr = \$x;
my $x = 7;
printf "xr .. %d\n",$$xr;
$$xr = 9;
printf "x .. %d\n", $x;
$$xr = 11;
printf "q() .. %d\n", q();
を次のスクリプトを考えてみましょう。代わりに、私は次の出力を得る...
q() .. 0
Argument "" isn't numeric in printf at src/demo/multi_my.pl line 8.
xr .. 5
x .. 7
q() .. 0
Argument "" isn't numeric in printf at src/demo/multi_my.pl line 22.
'q()'は ''''を書く別の方法です。別のサブ名を使用してください。 – ikegami
あなたが何のためのものなのかを知り、それを使用する正当な理由がない限り、[prototypes](http://perldoc.perl.org/perlsub.html#Prototypes)は使用しないでください。 'sub foo(){}'は 'sub foo {}'でなければなりません。 – ThisSuitIsBlackNot
'use strict'と' use warnings 'all''をプログラムの先頭に追加して、あなたが書いた他のすべてのプログラムにそれらを追加するので、Perlの動作を現実的に理解する必要があります。 – Borodin