Shogo's Blog

Dec 10, 2024 - 1 minute read - perl

Perl 5.40からiterating over multiple values at a time機能が安定版になりました

この記事は、Perl Advent Calendar 2024 10日目の記事(穴埋め)です。 9日目は@shogo82148で「Perl 5.41から、UTF-8で書かれたソースコードにはuse utf8が必須になります」でした。


以前、開発版のPerlで試した iterating over multiple values at a time 機能ですが、

Perl 5.40 から正式な機能として利用できるようになりました。

試してみた

この機能を使うと、ハッシュ(連想配列)の全要素に対して操作したい、ということが簡単にできます。 前回と同じコードを試してみましょう。

use v5.40;

my %hash = (
    a => 'Alice',
    b => 'Bob',
    c => 'Charlie',
);

for my ($key, $value) (%hash) {
    print "$key => $value\n";
}

警告が出力されずに問題なく実行できます。

a => Alice
b => Bob
c => Charlie

もちろん3つ以上同時に取得することもできます。

use v5.40;

my @cube = (
    (0, 0, 0), (0, 0, 1),
    (0, 1, 1), (0, 1, 0),
    (1, 1, 0), (1, 1, 1),
    (1, 0, 1), (1, 0, 0),
);

for my ($x, $y, $z) (@cube) {
    print "$x, $y, $z\n";
}

出力は以下のようになります。

0, 0, 0
0, 0, 1
0, 1, 1
0, 1, 0
1, 1, 0
1, 1, 1
1, 0, 1
1, 0, 0

まとめ

Perl 5.40 からハッシュのキーとバリューのペアを取ってくるのが簡単になります。

🐇
新しい機能が安定し、
Perlの世界が広がる、
反復処理の楽しさ、
みんなで共有しよう、
Advent Calendarで待ってるよ!
🌟

by CodeRabbit


明日11日目はTBDで「TBD」です。 お楽しみに!

参考