ルモーリン

リストのリテラル

投稿:2018-04-10

興味深いツイートを見かけたので。
ご覧ください。
#!/usr/bin/env perl -w

use utf8;
use warnings;
use strict;

use Encode::Locale;
use open IO => ":utf8";

binmode STDOUT, ":encoding(console_out)";
binmode STDERR, ":encoding(console_out)";

$| = 1;

print "配列にリストを代入\n";
my @a;
@a = ("a", 1);
for (@a) {
	print "$_\n";
}

print "ハッシュにリスト(キーと値の1組)を代入\n";
my %a;
%a = ("a", 1);
print "キー「a」の値を表示\n";
print $a{"a"} . "\n";

print "ハッシュにリスト(キーと値の2組)を代入\n";
%a = ("a", 1, "b", 2);
print "キー「a」の値を表示\n";
print $a{"a"} . "\n";
print "キー「b」の値を表示\n";
print $a{"b"} . "\n";

print "リストの書き方を「キー => 値」にする\n";
%a = ("a" => 1, "b" => 2);
for (sort keys %a) {
	print "キー「$_」の値は「$a{$_}」\n";
}

print "矢印「=>」を使っていてもリストだから配列に代入できる\n";
@a = ("a" => 1, "b" => 2);
for (@a) {
	print "$_\n";
}

print "リストだからforのカッコに書ける\n";
for ("a" => 1, "b" => 2) {
	print "$_\n";
}

exit;
例によってWindowsとLinuxで確認済みです。
配列にリストを代入
a
1
ハッシュにリスト(キーと値の1組)を代入
キー「a」の値を表示
1
ハッシュにリスト(キーと値の2組)を代入
キー「a」の値を表示
1
キー「b」の値を表示
2
リストの書き方を「キー => 値」にする
キー「a」の値は「1」
キー「b」の値は「2」
矢印「=>」を使っていてもリストだから配列に代入できる
a
1
b
2
リストだからforのカッコに書ける
a
1
b
2
「コンマ演算子」
「=> 演算子(時々『ファットコンマ』と発音されます)はコンマ演算子の 同義語です」
perlop - Perl の演算子と優先順位 - perldoc.jp

「リスト値のコンストラクター」
「リスト値は、個々の値をコンマで区切って (必要に応じて括弧で括って) 示されます」
perldata - Perl のデータ型 - perldoc.jp

「ハッシュはキーと値と解釈される値のペアとなるリストリテラルを使って 初期化されます」
perldata - Perl のデータ型 - perldoc.jp