On Wed, 2004-05-26 at 15:07, willy.k wrote: > Jose > > Many thanks for replying so quickly. > I will explain again, sorry but is complicated. > > > > ########################### > I have an array called group_vals. > > This array can be populated by any combination of values > e.g. /sp|lp|ep12|ffp|vid|dvd|bx|bkk|cd|csd/ > > I want to be able to say that: > > if the array contains ANY COMBINATION OF ONLY the values 'cd' and/or 'csd' > > #Ex 1. cd > #Ex 2. csd > #Ex 3. cd csd > #Ex 4. cd cd csd > #Ex 5. csd csd cd > #Ex 6. cd cd cd cd .....upto 10 items > ################################### > # THIS WORKS, thanks # > # unless ( grep { !/^(?:cd|csd)$/ } @array) { # > ################################### > > > > then do x > } > elsif > > if the array contains any combination of values from the populated group, > but not cd or csd by themsleves > > #Ex 1. sp > #Ex 2. bkk > #Ex 3. cd sp > #Ex 4. cd bkk lp > #Ex 5. cd bkk bkk > #Ex 6. cd sp bkk ep12 > #Ex 7. cd csd bkk lp ep12.....upto 10 items > ########################################################### > # THIS DOES NOT WORK > # > # elsif ( grep { /^(?:cd|csd)$/ } @array and grep { !/^(?:cd|csd)$/ } > @array) { # > ###########################################################
well, but this will (I hope) elsif ( grep { /^(?:sp|lp|ep12|ffp|vid|dvd|bx|bkk|cd|csd)$/ } @array and grep { ! /^(?:cd|csd)$/ } @array ) { # which fails only if there are other elements in the array that you don't want or if the array is constituted only by cd's and csd's This should work, unless I mistyped something... :-) If you're using /^(?:sp|lp|ep12|ffp|vid|dvd|bx|bkk|cd|csd)$/ more than once, I would advise this instead: my $acceptable = qr/^(?:sp|lp|ep12|ffp|vid|dvd|bx|bkk|cd|csd)$/; and then using $acceptable to do the matchings, such as grep /$acceptable/, @array it would be faster and more readable :-) HTH, jac > then do y > > > ##################################### > > > > Thanks > William -- Josà Alves de Castro <[EMAIL PROTECTED]> Telbit - Tecnologias de InformaÃÃo -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>