Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerl
  1. Perl
  2. 標準関数
  3. here

each関数 - ハッシュのすべてのキーと値を処理する

each関数を使用するとハッシュとキーと値のペアを取得することができます。繰り返し使用することで、すべてのキーと値を取得できます。

# ハッシュのキーと値のペアの取得
my ($key, $value) = each %hash;

eachを連続して使用するとすべての(キー, 値)のペアを順番に取得できます。取得する(キー, 値)のペアの順番は不定です。

# (キー, 値)のペアを順番に取得
my %age = (Ken => 19, Mike => 34);
while (my ($name, $age) = each %age) {
  ...
}

each関数を実践で使用することは少ないと思います。同じ処理が、keys関数を使って行うことができ、keys関数を使ったほうが柔軟性が高いからです。現在のPerlでは、keys関数が最適化されているので、パフォーマンス上においても、each関数に比べて、keys関数が遅いということはありません。

ハッシュのすべての値だけを取得するにはvalues関数を使うこともできます。

サンプルプログラム

ハッシュのすべての要素をeach関数を使って処理するサンプルです。

use strict;
use warnings;

# 生徒の数学の点数
my %math_scores = ( 
  Taro => 89,
  Naoko => 54,
  Kenji => 54,
);

# ハッシュのすべての要素をeach関数を使って出力する。
print "1: ハッシュのすべての要素each関数を使って出力する\n";
while (my ($key, $value) = each %math_scores) {
  print "%math_scores{$key} = " . $math_scores{$key} . "\n";
}
print "\n";

実行結果

1: ハッシュのすべての要素each関数を使って出力する
%math_scores{Kenji} = 54
%math_scores{Taro} = 89
%math_scores{Naoko} = 54
Qiitaで
「3分間Perlテキストクッキング」
という連載を始めました。
テキスト処理を題材にして、3分くらいで読める分量で、書いていきます。
文字コード、テキストデータ、コンピュータにおけるテキストの扱いなど、ソフトウェアの基礎の話題も
3分間Perlテキストクッキング