Thread Array leer, wie abfragen?
(12 answers)
Opened by PETER_PAN2009 at 2010-03-29 13:42
Anzumerken ist, das if(@array) gleich zu if(scalar(@array)) was wiederum gleich zu if(scalar(@array) == 0) ist.
In diesem Fall wird im skalar-Kontext abgefragt, nicht im listen-Kontext. Man muss da vorsichtig sein: Code (perl): (dl
)
1 2 3 4 5 6 my @array1 = (0); my @array2 = (); my @array3 = (); if(grep{ $_ > 0 }(@array1,@array2,@array3)) { #... } Das ist nicht das selbe wie: Code (perl): (dl
)
1 2 3 4 5 6 my @array1 = (0); my @array2 = (); my @array3 = (); if(@array1 > 0 or @array2 > 0 or @array3 > 0) { #... } Denn im ersten Fall ist es ein listen-Kontext im zweiten Fall ein skalar-Kontext. Will man den Ersten Fall wie den zweiten haben muss man es so machen: Code (perl): (dl
)
1 2 3 4 5 6 my @array1 = (0); my @array2 = (); my @array3 = (); if(grep{ $_ > 0 }(scalar(@array1),scalar(@array2),scalar(@array3))) { #... } oder Code (perl): (dl
)
1 2 3 4 5 6 my @array1 = (0); my @array2 = (); my @array3 = (); if(grep{ @$_ > 0 }(\@array1,\@array2,\@array3)) { #... } Oder ähnliches um ein skalar-Kontext zu erzwingen. Last edited: 2015-12-24 16:07:17 +0100 (CET) |