Thread wie testen ob leeres Array definiert wurde?
(36 answers)
Opened by KurtZ at 2008-03-06 23:58 Struppi+2008-03-11 09:43:07-- ja. was er will, ist das entsprechende zu referenzen: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 if (defined $bcc and @$bcc) { # definiert und nicht leer $bcc_string = 'Bcc: ' . (join ',', @$bcc) . $/; } elsif (defined $bcc) { # definiert, aber leer $bcc_string = ''; } else { # gar nicht definiert $bcc_string = 'Bcc: default@example.org' . $/; } nur sieht das beispiel für mich wie gesagt konstruiert aus, und sobald man kein monolithisches skript mehr hat und subroutinen ins spiel kommen, benutzt man eh referenzen. ich benutze undef() und defined() nur auf skalaren, von daher ist das ganze fuer mich auch logisch. dass undef(@array) geht, aber nicht defined(@array), ist eigentlich ein fehler von undef(), denn bei arrays leert undef() diese nur. Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: ![]() ![]() |