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ランキング
-
CLispのloop内の挙動について
-
icmp socket error
-
Rubyのgets関数について
-
Net::Telnetでタイムアウト時間...
-
Application.ScreenUpdating = ...
-
文字のカラーとフォントの指定...
-
どちのほうがすきですか?
-
セレクトメニューで選んだ値を...
-
【メモリ不足で落ちる(python)】
-
パイソンのクラスのブログラム
-
パイソンのクラスについて
-
JSONで文字列が長い時
-
perlでcheckboxがうまく整理で...
-
foreach (1..4){ 英文字$_→$新...
-
パイソンのクラスについて
-
vscode 文字化け
-
右詰表示
-
【至急!!!】python言語で本を見...
-
ACCESS テキストボックスを隙...
-
パイソンプログラミング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perlで複数の値を返す良い方法...
-
HASH(0xほげほげ)
-
プロトタイプ宣言のワーニング...
-
Pythonのプログラミングの質問...
-
Net::SSH::Perlについて
-
perlのスクリプトどこが間違っ...
-
print <<"_HTML_"の中でサブル...
-
内部処理形式が日付型 (Date) ...
-
Perlで use strict して our変数
-
変数に値を代入するのに、まずu...
-
Perl:計算誤差について
-
icmp socket error
-
Perlで足し算をするには
-
連想配列とforeach
-
Wコロン
-
PERLの「!=」と「=~」 or...
-
for文の中でのforeachの問題
-
Perlで自分自身の関数名を知る...
-
PerlでCabochaを呼び出すには(...
-
Net::Telnetでタイムアウト時間...
おすすめ情報