ハッシュテーブルのデータから取得した文字列の配列があります。(どうやら)空の要素を削除しようとしていますが、何らかの理由で、移動を拒否する頑固な要素があるようです。
私がやっている:
# Get list array from hash first, then
@list = grep { $_ ne ' ' } @list;
@list = uniq @list;
return sort @list;
そのgrep
行Use of uninitialized value in string ne...
で、配列の残りの部分が正しく印刷されたメッセージが表示されます。
私はそれを「長い」方法でやってみました:
foreach (@list) {
if ($_ ne ' ') {
push @new_list, $_;
}
}
しかし、これはまったく同じ結果を生成します。defined
期待通りの結果(なし)で使ってみました。
事前に配列を並べ替えて最初の要素を削除することはできますが、データセットに常に空白の要素が含まれることを保証できないため、非常に危険なようです。正規表現に頼るのも過剰に思えますが、おそらく私は間違っています。いつものように、ばかばかしいほど単純なものが欠けていると確信しています。