Your first and second are identical in function:
our @array2; my @array3; my @array4 = (); my @array5 = (undef); my @array6 = ('one'); print("defined:\n"); print('array1: ', defined(@array1)?1:0, "\n"); # 0 print('array2: ', defined(@array2)?1:0, "\n"); # 0 print('array3: ', defined(@array3)?1:0, "\n"); # 0 print('array4: ', defined(@array4)?1:0, "\n"); # 0 print('array5: ', defined(@array5)?1:0, "\n"); # 1 print('array6: ', defined(@array6)?1:0, "\n"); # 1 print("\n"); print("explicit scalar:\n"); print('array1: ', scalar(@array1)?1:0, "\n"); # 0 print('array2: ', scalar(@array2)?1:0, "\n"); # 0 print('array3: ', scalar(@array3)?1:0, "\n"); # 0 print('array4: ', scalar(@array4)?1:0, "\n"); # 0 print('array5: ', scalar(@array5)?1:0, "\n"); # 1 print('array6: ', scalar(@array6)?1:0, "\n"); # 1 print("\n"); print("implicit scalar:\n"); print('array1: ', @array1?1:0, "\n"); # 0 print('array2: ', @array2?1:0, "\n"); # 0 print('array3: ', @array3?1:0, "\n"); # 0 print('array4: ', @array4?1:0, "\n"); # 0 print('array5: ', @array5?1:0, "\n"); # 1 print('array6: ', @array6?1:0, "\n"); # 1 print("\n");
I don't think defined should be used on an array.
In reply to Re^2: Check if array is null
by ikegami
in thread Check if array is null
by Texan
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |