現在perlの勉強中で、ハッシュの項目まできました。しかし、use strictにするとこのコードがエラーになります。
#!/usr/bin/perl
use strict;
use warnings;
print "Content-type:text/html\n\n";
$hoge{"key1"} = "value1";
print $hoge{"key1"};
exit;
ヴァージョンは5.8.9です。use strictをコメントアウトすればエラーはでません。どうしてエラーになってしまうのでしょうか?どうすればエラーを出さずに表示することができるのでしょうか?どうかご教授ください。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
1. あらかじめ my %hoge; ないし our %hoge; としておく.
2. use vars '%hoge'; を使う.
「納得できない」といわれても, 「無い袖は振れない」わけでして....
my にしろ our にしろ, ハッシュならハッシュ全体が対象になります. だから, 一部のみにアクセスする
$hoge{"key1"} = "value1";
という形では my も our もつけられないんです.
理由がわかれば納得できます。$hoge{"key1"} = "value1";という形ではやりようがないのですね。どうもありがとうございました!
No.1
- 回答日時:
use strict;は最初に変数や配列の宣言をしなければなりません。
最初に、my %hoge;や、local %hoge;などで宣言してください。
この回答への補足
%hoge = ("key1","value1");
のような書き方ではなく、
$hoge{"key1"} = "value1";
の書き方ではどうすればいいのかを知りたいです。
ちなみに、my %hoge = ("key1","value1");であれば表示できましたが、local %hoge = ("key1","value1");ではエラーになりました。
勉強なので、my %hogeで表示できるからいっか!っていうのは納得がいきません。$hoge{"key1"}のような書き方で表示する方法を教えてください。よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl perlをバージョンアップしたら、今まで正常に動いていたプログラムが、エラーになってしまった 3 2022/10/05 15:44
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- Perl Perlのエラーについてご教授ください。初心者です。 CGIを別サーバに移したところ、Perlのバー 5 2023/05/31 10:48
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- WordPress(ワードプレス) ワードプレスのエラー ログイン画面が表示できない 1 2022/11/05 09:51
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字列を変数名として扱う方法
-
連想配列のサイズ制限
-
まったく同じファイルのハッシ...
-
JSを使ったタブの別ページから...
-
英語でのシャープとコメの呼び...
-
UWSCの終了の仕方
-
画面を強制的に再描画させる方法
-
イベントの発生を待つ
-
再帰関数のインライン展開
-
ExcelVBA FindNextを使用して条...
-
範囲指定したセルを1つずつ飛...
-
テキストボックスの名前に変数...
-
ループフリー
-
VBのReturnの使い方
-
ボタンが押された時にループか...
-
WHILE (CHKIMG(”A.bmp”)=FALSE)...
-
モンテカルロ法
-
VB2010でCSVファイルの読み込み
-
VBAで3秒だけ時間を止めたい
-
複数の配列の全ての組み合わせ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perl 文字列検索後に指定フィー...
-
文字列を変数名として扱う方法
-
チェックデジットについて
-
ハッシュ検索はなぜ速い
-
列挙型と連想配列の違いを教え...
-
ハッシュリストって単にハッシ...
-
まったく同じファイルのハッシ...
-
*(アスタリスク)の意味
-
ハッシュ値によるファイルの同...
-
一意(ユニーク)かつ、ソート...
-
ハッシュのハッシュを実現したい。
-
Perlは戻り値で、ハッシュや配...
-
連想配列のサイズ制限
-
英語でのシャープとコメの呼び...
-
短いハッシュの作り方
-
VBAにハッシュ関数はないのです...
-
動的なハッシュの配列を作成したい
-
全ての変数を初期化する方法は...
-
ハッシュとツリー構造
-
Perlのサブルーチンの引数に配...
おすすめ情報