質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

Q&A

解決済

1回答

10747閲覧

Perl:$_とは?

UMA00

総合スコア18

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

0グッド

0クリップ

投稿2016/10/22 08:05

編集2016/10/22 08:06

###質問
Perlで使用される「$_」というものの名前とその役割を知りたいです。
調べたところ、以下の内容かと思いましたが確信が持てないのでここに質問致しました。

・名前:「特殊変数」もしくは「レキシカル変数」と呼ばれる変数
・役割:配列の要素を割り当てる。

宜しくお願い致します。
###「$_」の使用例

Perl

1use strict; 2use warnings; 3 4my @list = (0, 1, 2); 5for (@list){ 6 print "elem = $_\n"; 7} 8# 実行結果 9#elem = 0 10#elem = 1 11#elem = 2

###補足
最近Perlを使用し始めたのですが、Web上で「これ!」という情報を見つけるのが、他の言語と比較して難しく感じます(Perl好きの方、ゴメンなさい)。とりあえず、「初めてのPerl」という本を注文しました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Perl という言語は、基本的に $_ という特殊変数を「勝手に」使用します。
しかも、$_は省略できます。初心者の方には訳が分からないかと思いますが。

perl

1my @list = (0, 1, 2); 2for ($_ = @list){ 3 print "elem = $_\n"; 4}

省略せずに書くとこうなります。もちろん、代わりに自分で命名した変数に代入すればそれを使用できます。

投稿2016/10/22 08:52

mugicya

総合スコア1046

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mugicya

2016/10/22 08:54

あ、あと本は Perlクックブックもお勧めです。サンプルがてんこ盛りです。
UMA00

2016/10/23 09:00

ご回答ありがとうございます!! ループの部分を見ると、「$_」は配列の要素を順番に取り出している変数のようですね。Perlでは、よく使用するケース(ここでいうループ処理など)については、予め変数が用意されているのですね。 ちなみに本日「初めてのPerl」が届き、今黙々と読んでますが結構面白いです!!「オライリーは難しそう」という勝手なイメージは間違っていたようです。 オススメの本まで教えて頂きありがとうございます。これを読了して、そちらを見ながらいろいろ遊んでみるかもしれません。「続・初めてのPerl」も読んでみたいです。
ikedas

2017/01/25 06:03 編集

ご回答のコードは、意図したような動作をしません。 「elem = 3」とだけ出力して終了します。スカラに配列を代入すると暗黙のscalar()によって要素数に変換されるためです。よってfor ()が受け取るのは3だけを要素に含むリストです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問