[解決済み] Perlで "my "キーワードはどのように使うべきですか?
質問
ネット上のPerlスクリプトの例で、変数名の前に"my"というキーワードをよく見かけるのですが、どういう意味なのかさっぱりわかりません。 マニュアルのページや他のサイトも読んでみましたが、私が見た使い方とマニュアルの違いに、それが何のためにあるのか判別するのが困難です。
例えば、この記事で配列の長さを取得するために使われています。 Perl で配列のサイズを調べる
でも、マニュアルによると
my は、リストされた変数が、ブロック、ファイル、または eval に対して局所的(語彙的)であることを宣言しています。 囲むブロック、ファイル、またはevalのローカル変数であることを宣言します。複数の値がリストされている場合、そのリストは を括弧でくくらなければなりません。
何をするもので、どのように使われるのですか?
どのように解決するのですか?
my
を制限しています。
スコープ
を制限します。変数のスコープとは、その変数が見える範囲のことである。変数のスコープを必要な場所に縮小することは、優れたプログラミングの基本的な側面です。これにより、コードがより読みやすくなり、エラーが起こりにくくなり、結果として多くの派生的な利点が得られます。
を使用して変数を宣言しない場合
my
を使って宣言しなかった場合、代わりにグローバル変数が作成されます。これは避けなければなりません。使用方法
use strict;
を使うと、暗黙のうちにグローバル変数が作られないようにしたいことを Perl に伝えることができます。
use strict;
(そして
use warnings;
を使うことができます。
関連する読み物
なぜ
use strict;
と
use warnings;
?
関連
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] どのような場合に '$this' よりも 'self' を使うべきですか?
-
[解決済み] JavaScriptの変数のスコープとは何ですか?
-
[解決済み] C#がforeachで変数を再利用するのは理由があるのか?
-
[解決済み] JavaScriptの配列宣言で「Array()」と「[]」はどう違うのですか?
-
[解決済み] Perlからロケール設定の警告を修正する方法
-
[解決済み] 最近のPerlはなぜデフォルトでUTF-8を避けるのですか?
-
[解決済み】定義と宣言の違いは何ですか?
-
[解決済み] PerlからUTF-8を出力するにはどうしたらいいですか?
-
[解決済み] Perlでハッシュを結合するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Perlで配列のサイズを調べる
-
[解決済み】Perlの'my'と'our'の違いは何ですか?
-
[解決済み] Perlでファイルが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] なぜPerl 5の関数プロトタイプはダメなのか?
-
[解決済み] Perl のフラグ -pe, -pi, -p, -w, -d, -i, -t?
-
[解決済み] Perlのハッシュのキーを反復処理する最も安全な方法は何ですか?
-
[解決済み] なぜstrictとwarningを使うのか?
-
[解決済み] Perlで文字列が空かどうかをチェックする適切な方法は何ですか?
-
[解決済み] Perlのprintがデフォルトで改行を追加するには?
-
[解決済み] Perl CGI スクリプトのトラブルシューティングはどのようにすればよいですか?