配列に値が含まれるかどうかは、 TemplateToolkitのVirtualMethodであるgrepでもできるようだけど、諸事情によりハッシュを使ったメモを残す。
配列に特定の要素が含まれるか確認する
Pythonでリストやタプルや辞書のキーで要素が取得できるかを確認するのは、 in を使えばいいです(ただし、辞書からNoneが返ると…)。
l = (1,2,3,4,5,)
if 4 in l:
print 'exist!'
Perl講座 によると、Perlで配列に特定の要素が含まれているかを確認するのは次のようにすればいいそうなんですが、よくわかりません :)
文字の場合
@array = qw/rhythm factory express biztech/;
%tmp;
for ( @array ) { $tmp{$_} = 1 }
小さな数値の場合
@array = (1, 2, 4, 8, 16, 32);
@tmp;
for ( @array ) { $tmp[$_] = 1; }
配列からハッシュを作る
今回は、TemplateToolkitのVirtualMethodのexistsが使いたいだけなので、配列の要素をキーとバリューに設定したハッシュを作ります。
my @l = [1,2,3,4,5];
my %l;
@l{@l} = ();
意味が分かりません><
配列と同名のハッシュを定義して、配列に配列に…? なぜか%lが設定済みになります。コンテキストが云々と説明してもらったけど、脳みそがスルーした :)
Perlむずいなー