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でポータブルなLinuxファイル管理入門

ITエンジニアの求人情報など

 ITエンジニアの求人情報・Webサービス・ソフトウェア・スクールなどの情報。

システム開発のお問い合わせ