• ベストアンサー

サブルーチンの引数としてハッシュを渡したい

ハッシュを引数として受け取り、そのハッシュの内容を csv形式に変換し出力するというサブルーチンを作っています。 ハッシュのキー名は固定なのですが、 引数として渡すハッシュの名前がバラバラの場合、 それを引数としてうけとることは可能なのでしょうか? また、どのように受け取ればいいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.1

引数として渡されるのは「変数名」ではなく「データ」なので、渡すハッシュの名前を気にする必要はありません。 サブルーチンに渡されたデータが @_ に入るのは知っていますよね? ハッシュを渡した場合は「キーA, 値A, キーB, 値B・・・」というリストになって @_ に格納されるので、それをサブルーチン内で用意したハッシュで受け取ればよいのです。 sub hash2csv {   my %data = @_;  # 引数のハッシュを %data にコピーして使う。    : } hash2csv(%hash1); hash2csv(%hash2);

pyonsama
質問者

お礼

やっと解決することができました。 わかりやすい説明でPerl初心者の私にも理解することができました。 ありがとうございました。

関連するQ&A