![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
perlを勉強していて、似たような配列やハッシュの場合でしたらなんとか解決出来たのですが、以下の場合が思うような結果が得られず困っているので、どなたか教えていただきたく質問しました。
例)
my $hoge1=10;
my $hoge2=9;
my $hoge3=8;
my $hoge4=7;
my $hoge5=6;
my $hogehoge;
for(1..5){
$hogehoge+=$hoge$_;
}
上記の書き方の場合、「$hoge$_」でエラーが出ます。
このような場合は、どのように書けばいいのでしょうか。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
> 「$hoge$_」のような書き方は出来ないのでしょうか。
似たようなことをやる方法はありますが、その書き方は推奨されていないと思います。
実行中のプログラムの変数を文字列だと思い、実行中のプログラム中の変数と連結してその値を得るには一つメタな立場にあがらないといけません。例えるなら、プログラムを実行している視点から、プログラムを書いている視点にあがるとも言えるかもしれません。多くのスクリプト言語にはそれをするためにevalという命令が用意してあります。
ただ、evalはそこに書かれている文字をプログラムだと思って愚直に実行するので、そこに書かれる文字を完全に制御できないと非常に危険です。よって、まともな人ならevalを実用するプログラムには使いません。なお、perlのevalには環境を分けるなど別の使い方もあります。詳しくはこれを御覧ください。
http://www.effectiveperlprogramming.com/2011/03/ …
一応、evalを使った書き方です。
$hogehoge+=eval('$hoge' . $_);
丁寧に教えていただきありがとうございます。
evalについて、このような使い方があったとは知らず、参考URLも拝見させていただきました。
やはり、配列などを使ってのやり方が一番使いやすいようなので、そちらでやってみたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 英語 「this is the/my first time~」の文法上の制約について 1 2023/04/06 09:48
- PostgreSQL 【PostgreSQL】行の値の並びを変えるには 1 2023/03/21 16:46
- 英語 a lot of my homeworkはありか? 5 2022/10/13 16:50
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Perl perlをバージョンアップしたら、今まで正常に動いていたプログラムが、エラーになってしまった 3 2022/10/05 15:44
- 英語 「名詞 of 名詞」において、どちらも同一人物が主体となったり所有する名詞の適切な各限定詞について 2 2022/08/18 11:32
- 英語 someone stepped on my foot「誰かが私の足を踏んだ」という文についてですがo 1 2023/08/08 21:46
- 英語 提示文の構造について 7 2022/08/12 20:50
- Access(アクセス) Access2016のExcelインポートの機能のことで教えてください 1 2022/09/11 14:58
- 英語 "beside"と比較級の共起の可否について 5 2022/11/15 09:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perlで複数の値を返す良い方法...
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
FindFirst を複数条件で検索
-
【至急!!!】python言語で本を見...
-
VBAでPDFのコピーとリネームを...
-
実行時エラー 3020の対策
-
複数列を持ったリストボックス...
-
数値かどうかの判定方法
-
「*:*」って何を意味するのでし...
-
実行中の変数の中身をイミディ...
-
<SELECT>タグの折り返し
-
sendmailで複数アドレスに送信...
-
C言語のflagの使い方が分かりま...
-
EXCELのマクロで外部データの取...
-
vbaでxmlからNodeListでデータ...
-
[python] 文字列を変数名として...
-
構造体の各データの表示につい...
-
メモリをアドレスを直接指定し...
-
ソケットでのデータ送受信につ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CLispのloop内の挙動について
-
Perlで自分自身の関数名を知る...
-
Net::Telnetでタイムアウト時間...
-
print <<"_HTML_"の中でサブル...
-
10進数→2進数
-
Rubyのgets関数について
-
作業域が消える(ように見える)
-
CGI初心者です
-
Perlで複数の値を返す良い方法...
-
検索機能の作成で困っています
-
ハノイの塔の問題で困っており...
-
foreach 回数制限
-
Pythonのマルチプロセスでの並...
-
LISPで連想配列の操作?
-
PERLの「!=」と「=~」 or...
-
Wコロン
-
PerlでCabochaを呼び出すには(...
-
シェルでawkを使い行数を取り出...
-
Perlですが、redoの処理がいま...
-
icmp socket error
おすすめ情報