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

pq
 2008-03-11 13:48
#106943 #106943
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
Struppi+2008-03-11 09:43:07--
Ja, dann fragst du unless(@BCC) .... ab oder versteh ich dich falsch?

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: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread wie testen ob leeres Array definiert wurde?