タスク:マップを使ってハッシュを構築する。ここで、キーは与えられた配列@aの要素であり、値はの最初のの要素f($ element_of_a ):FまでPerl:リストの最初の要素へのマッピング
my @a = (1, 2, 3);
my %h = map {$_ => (f($_))[0]} @a;
すべてオーケー)()(つまり、(Fために絶対的に正しいです空のリストを返します)、その場合には、私はundefを割り当てるしたいと思います。このエラーは、次のコードで再現できます。
my %h = map {$_ =>()[0]} @a;
「ハッシュ割り当ての要素の奇数」のようにエラーが発生します。私は、コードを書き換えた場合、そのようなこと:
my @a = (1, 2, 3);
my $s =()[0];
my %h = map {$_ => $s} @a;
または
my @a = (1, 2, 3);
my %h = map {$_ => undef} @a;
Perlは全く文句はありません。
それでは、どのよう私はこれを解決する必要があります - F()によって返されたリストの最初の要素を取得し、返されたリストが空であるとき?
Perlバージョンが5.12.3
ありがとう。
それは空のリストを返すとき、あなたは 'undef'か、それが返されるリストのそれ以外の場合は最初の要素を供給するようにF''への呼び出しをラップします。 –