Perlゼミ

  1. Perl
  2. 演算子
  3. here

ハッシュスライス

ハッシュスライスという機能を利用するとハッシュから複数の値を取り出すことができます。

my @math_score_slice = @math_scores{'Aiko', 'Kenta'};

ハッシュスライスを使うと、キーを複数指定して、値をリストとして取り出すことができる。接頭辞が$や%でなく、@であること、キー指定が、{ }であることに注意してください。

ハッシュのリファレンスに対して、ハッシュスライスを行うときは次のようにできます。

my @math_score_slice = @$math_scores{'Aiko', 'Kenta'};

ハッシュスライスを左辺値として使う

@math_score_of{'Aiko', 'Kenta'} = (20, 40); 

ハッシュスライスを左辺値として使うことで、対応するキーに代入することができます。

配列スライス

ハッシュスライスとよく似た機能として配列スライスがあります。配列スライスは、配列の複数の要素を取り出すのに利用することができます。

# 配列スライス
my @values = @array[0, 3, 5];

サンプルプログラム

ハッシュスライスのサンプルプログラムです。

use strict;
use warnings;
use Data::Dumper;

# 生徒の数学の点数
my %math_scores = ( 
  Aiko => 89,
  Kenta => 100,
  Taro => 34,
);  

print "元のハッシュ\n";
print Dumper \%math_scores;
print "\n\n";

# 1: ハッシュスライス
print "1: ハッシュスライス(Aiko と Kenta の値を取得する)\n";
my @math_score_slice = @math_scores{'Aiko', 'Kenta'};
print "\@math_score_slice = (", join(', ', @math_score_slice), ")\n\n";

# 2: ハッシュスライスを左辺値として使う( Aiko と Kenta に値を設定する )
print "2: ハッシュスライスを左辺値として使う"
  . "(Aiko と Kenta に値を設定する)\n";
@math_scores{'Aiko', 'Kenta'} = (20, 40); 
print Dumper \%math_scores;

参考:join関数

Perlの書籍
  • 業務に役立つPerl

    ログ解析など日本語を含むテキスト処理の実践!
    この私、Perlゼミの作者が執筆しています。
    ご購入、口コミ歓迎。
  • Perlの書籍 »
自己紹介
木本裕紀

「今日も元気だ、Perlで元気。
ゆとりあるITエンジニアライフのために
Perl情報を前向きに発信中!」

Twitter
フォロー、いいね、リツート、コメント歓迎

Youtube

チャンネル登録、いいね、コメント歓迎

kimoto.yuki@gmail.com
応援メッセージ、質問、間違い報告歓迎

木本システム株式会社
ご紹介キャンペーン実施中です。契約金額の10%をご紹介料としてお支払い。

(例)30万円のシステム開発委託契約が、1年続いたら、36万円がもらえる!!!