- ベストアンサー
サブルーチンの引数としてハッシュを渡したい
ハッシュを引数として受け取り、そのハッシュの内容を csv形式に変換し出力するというサブルーチンを作っています。 ハッシュのキー名は固定なのですが、 引数として渡すハッシュの名前がバラバラの場合、 それを引数としてうけとることは可能なのでしょうか? また、どのように受け取ればいいでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
引数として渡されるのは「変数名」ではなく「データ」なので、渡すハッシュの名前を気にする必要はありません。 サブルーチンに渡されたデータが @_ に入るのは知っていますよね? ハッシュを渡した場合は「キーA, 値A, キーB, 値B・・・」というリストになって @_ に格納されるので、それをサブルーチン内で用意したハッシュで受け取ればよいのです。 sub hash2csv { my %data = @_; # 引数のハッシュを %data にコピーして使う。 : } hash2csv(%hash1); hash2csv(%hash2);
お礼
やっと解決することができました。 わかりやすい説明でPerl初心者の私にも理解することができました。 ありがとうございました。