鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

PerlでHashRefからArrayRefを作りたいのだ

PerlでHashRefのデータからArrayRefのデータに変換したいってことは、たぶん良くあります。

HashRef {"dokechin" => "soba", "yusukebe" => "ramen"}

ArrayRefのデータ ["dokechin" , "yusukebe"]

さて、どうやるのだろうか・・・

以下で出来たけど、もっと短く一発で行く方法はないかな。

$ perl -e '$hash = {dokechin => "soba", yusukebe => "ramen"}; @array  = keys %$hash; $array_ref = \@array; for $entry (@$array_ref){print $entry;}'

id:tsucchi1022さんからコメントいただきました

my $aref = [keys %{ $hash }];
でどうでしょう?

id:lestrratさんからもツイートいただきました

perl -MData::Dumper -E 'my $ref = { dokechin => "soba", yusukebe => "ramen" }; say Dumper([ keys %$ref ])'

ありがとうございました。ほんとにすっきり書けるんですね。レベルアップできました!!