daptal has asked for the wisdom of the Perl Monks concerning the following question:
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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: check array reference empty
by jwkrahn (Abbot) on Sep 02, 2011 at 02:06 UTC | |
|
Re: check array reference empty
by ikegami (Patriarch) on Sep 02, 2011 at 03:31 UTC | |
|
Re: check array reference empty
by Marshall (Canon) on Sep 03, 2011 at 01:12 UTC | |
|
Re: check array reference empty (Please Ignore)
by luis.roca (Deacon) on Sep 02, 2011 at 02:11 UTC |