perlについて学習中で、現在フリーのスクリプトを見て勉強しております。
中括弧の使い方を教えて欲しいです。
sub test { print"OK"; }
if ($test>1) { print"OK"; }else{ print"NG";}
上記のようにサブルーチンやif文での使い方は分かるのですが、フリーのスクリプトの中に単に中括弧を使用している部分がありました。
例)
{ ←この括弧
my(@new);
for(0..3){if($tmp[$_]=~/jpg/){push(@new,$tmp[$_]);}}
}
矢印の部分の部分の括弧ですが、これはどのような意味があるのでしょうか?
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
レキシカルスコープと呼ばれるものを作るためです。
Perl では { } で囲まれた範囲(ブロック)にレキシカルスコープと呼ばれるものができます。
レキシカルスコープ内で my を付けて宣言さた変数(@new)はそのブロック終了後(対応する } より後ろ)は使えなくなり、間違えて同名の変数(@new)を再使用してしまう間違いを犯しにくくなります。
空のブロックでなくても、sub{}、if{}、foreach(){} など、さまざまなブロックでレキシカルスコープは作成されます。
「Perl スコープ」で検索されるといろいろ発見があると思います。
回答ありがとうございます。
とても詳しく説明いただき、感謝いたします。
今まで{}はいつもsubやifがあったので、それがない場合の意味が不明でしたが、これでようやく理解出来ました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
例外処理のフローチャートの記...
-
”:”がいっぱいの文について。
-
初心者です。Perlではどんな時...
-
ExcelVBA AddinでOnAction
-
モジュールとサブルーチン
-
オフコン(富士通Kシリーズ)...
-
エクセルVBAでシートモジュール...
-
ラズベリーパイ初心者です。 ラ...
-
【vba】フォームに書いてあ...
-
Excel VBAで、ユーザーフォーム...
-
VBSがコンパイルエラーになりま...
-
VBでグローバル変数を宣言するには
-
LCD ディスプレイを Raspberry ...
-
モジュールとクラスの違いって...
-
モジュールからフォームのボタ...
-
Excel VBA 『Call』で呼び出す...
-
VBAで別モジュールへの変数の受...
-
BASP21使用のメール送信でコマ...
-
Excel VBAでリンク切れをチェッ...
-
PERLからcshellを実行したいの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
例外処理のフローチャートの記...
-
Excel VBAで、ユーザーフォー...
-
オフコン(富士通Kシリーズ)...
-
”:”がいっぱいの文について。
-
モジュールとサブルーチン
-
COBOLで、Shellを起動するには?
-
プログラムの「生産性」について
-
初心者です。Perlではどんな時...
-
fortran95実行エラー
-
サブルーチンを認識しません。
-
配列と互換性のない型の要素に...
-
ExcelVBA AddinでOnAction
-
GOSUB命令とは
-
Attempt to free unreferenced ...
-
VBAで2重のDoLoop関数から抜け...
-
ACCESSのVBAでPrivate Sub ~en...
-
配列Xの最大値、最小値を求める...
-
サブルーチンやif分以外での中括弧
-
perlの構文でカンマの意味が分...
-
マジカルインクリメントの実装...
おすすめ情報