2017-01-19 4 views
1

指定された配列が未定義の場合は空の配列を割り当てようとしていました。しかし、perl配列は論理的に定義されたスカラーコンテキストで実行されているようです。論理定義のPerl配列

例:

@h = 1 .. 5; 
@a = @h //(); 
@b = defined @h ? @h :(); 

print @a; #5 
print @b; #12345 

は、私は、コードの2行目のように、同様の方法で行うことができるように回避策はありますか?

+7

スカラー値のみが「undef」であることができます。また、配列の定義をテストすることは意味がありません。 '@ h'が空でないならば' @ a'を '@h'に設定したい場合は空リストに設定し、' @a = @ h'だけ書くことができます。 – Borodin

+0

ああ、そうです。あなたが正しいです。ありがとう! @ボロディン – halfo

答えて

2

スカラー値のみがundefになることがあります。定義のために配列をテストすることは意味がありません。 @a@hに設定する場合は、@hが空でない場合は空のリストに設定し、次に@a = @hと書くことができます。

関連する問題