Thread wie testen ob leeres Array definiert wurde? (36 answers)
Opened by KurtZ at 2008-03-06 23:58

betterworld
 2008-03-08 17:42
#106832 #106832
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Ich dachte eigentlich immer, dass die beiden das gleiche tun:
Code (perl): (dl )
1
2
my @array;
my @array = ();


Ich schreibe jedenfalls immer das erste, weil es kuerzer ist. Es erzeugt nach meinem Verstaendnis einfach ein leeres Array, nix undefiniert oder so.

Es gibt hoechstens "undeklarierte" Arrays, also solche, die mit keinen der beiden obigen Schreibweisen erzeugt wurden. Aber in dem Fall darf ich unter strict auch nicht mehr defined @array schreiben, weil @array eben undeklariert ist.

Ich denke wie pq: Du solltest eine Arrayreferenz nehmen, da ist es klar, was defined bedeutet.

GwenDragon+2008-03-07 15:32:04--
Was hindert dich bitte daran, einfach
if(scalar @Array)
oder if ($#Array>-1) zu schreiben?

Ist für Perlschreibfaule sogar kürzer als defined ;)

Warum nicht gleich if (@array)? Sollte doch auch das gleiche tun, und wenn Du so schreibfaul bist... ;)

View full thread wie testen ob leeres Array definiert wurde?