I wanted to know what is the best method to check if an array reference exists or not. The following is a basic test i have done.
Output:#!/usr/bin/perl use strict; use warnings; my @arr1 = (1,2,3,4); my @arr2 = (); print ((@arr1) ? "arr1 is defined\n" : "arr1 is not defined\n"); print ((@arr2) ? "arr2 is defined\n" : "arr2 is not defined\n"); my $arr_ref1 = [11,22,33,44]; my $arr_ref2 = []; print (($arr_ref1) ? "arr_ref1 is defined\n" : "arr_ref1 is not define +d\n"); print (($arr_ref2) ? "arr_ref2 is defined\n" : "arr_ref2 is not define +d\n"); print (($arr_ref1->[0]) ? "arr_ref1 is defined\n" : "arr_ref1 is not d +efined\n"); print (($arr_ref2->[0]) ? "arr_ref2 is defined\n" : "arr_ref2 is not d +efined\n");
arr1 is defined arr2 is not defined arr_ref1 is defined arr_ref2 is defined arr_ref1 is defined arr_ref2 is not defined
The above method ie $arr_ref->[0] will fail in conditions when the first element is set to undef and the rest of the elements exist.
Your thoughts please
In reply to check array reference empty by daptal
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |