Perl
    参考 URL:
  my

Perl Perl/GDSII page

my

my って何 ?

perl の help の中には perldoc があり、関数を調べるなら

perldoc -f 関数名
とします。それで、 コマンド・プロンプトで、
perldoc -f my
と入力すると、次のような説明を表示します。
my VARLIST my TYPE VARLIST my VARLIST : ATTRS my TYPE VARLIST : ATTRS A "my" declares the listed variables to be local (lexically) to the enclosing block, file, or "eval". If more than one variable is listed, the list must be placed in parentheses. The exact semantics and interface of TYPE and ATTRS are still evolving. TYPE may be a bareword, a constant declared with "use constant", or "__PACKAGE__". It is currently bound to the use of the fields pragma, and attributes are handled using the attributes pragma, or starting from Perl 5.8.0 also via the Attribute::Handlers module. See "Private Variables via my()" in perlsub for details. Note that with a parenthesised list, "undef" can be used as a dummy placeholder, for example to skip assignment of initial values: my ( undef, $min, $hour ) = localtime;
いろいろ書いてありますが、僕は(主に)単なる変数宣言として、使っています。

「変数宣言って要るの ?」 ですが、少し話が長くなりますが、

use strict;

との関連になります。

use strict; した時には、変数を最初に使う時には my が必要になります (例外あり our( ))。 こうしておくと、変数名のつづりの誤りを見つけてくれる可能性が高まります。

#!/usr/bin/perl $variable_name_one = 1; print $variable_name_one, "\n";
という correct という名前の手続があったとして、実行すると、
perl correct 1
となりますが、もしつづりを次のように間違えていると、
#!/usr/bin/perl $variable_name_one = 1; print $variable_name_on, "\n";
これの名前が typo (入力文字間違い) だとして、実行すると、 $variable_name_on の中身は空ですので、 改行だけを表示します。
perl typo
しかし、これに use strict; と my を加えて use-strict という名前で保存してあったとして、
#!/usr/bin/perl use strict; my $variable_name_one = 1; print $variable_name_on, "\n";
実行すると、
perl use-strict Global symbol "$variable_name_on" requires explicit package name (did you forget to declare "my $variable_name_on"?) at use-strict line 4. Execution of 2 aborted due to compilation errors.
というように、 (my を使った)宣言のない変数を参照しようとすると、
「変数のつづりが間違っているのではありませんか ?」 と教えてくれます。

Last Update: Sun, 31 Mar 2019 02:27:12 GMT 1.66 2008/03/08