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

KurtZ
 2008-03-11 15:04
#106950 #106950
User since
2007-12-13
411 Artikel
BenutzerIn
[default_avatar]
pq+2008-03-11 12:48:40--
...denn bei arrays leert undef() diese nur.

naja was verstehst du unter "nur leeren"? Nach undef @arr wird der Speicher freigegeben und defined @arr ist false. siehe Codebeispiel http://board.perl-community.de/thread/11425/startWithMessage=4

Ich geb und gab dir ja recht das man bei größeren Skripten kaum an Refs vorbeikommt, nur die Begründung in perldoc -f defined ist IMHO falsch.

... You should instead use a simple test for
size:

if (@an_array) { print "has array elements\n" }
if (%a_hash) { print "has hash members\n" }


Der Ersatz durch if (@an_array) ist eben nicht gleichwertig!!!

Aber lassen wir die Diskussion, wir drehen uns im Kreise. Es ist IMHO unnötig unorthogonal und man muss wie so oft auf Referenzen ausweichen und Doppelsigils wie @$ hinschreiben.
TMTOWTDYOG (there's more than one way to dig your own grave)

View full thread wie testen ob leeres Array definiert wurde?