William Michels <w...@caa.columbia.edu> wrote: > my $exclude3 = ( rx/<|w>mothera$/, rx/<|w>camel$/ ); > my @files3 = find( dir => $loc, type => 'file', exclude => $exclude3>>.any > ); > say "Exclude3: ", @files3; > #Exclude3: ["/Users/me/test_folder/.DS_Store".IO > "/Users/me/test_folder/godzilla".IO "/Users/me/test_folder/mothera".IO > "/Users/me/test_folder/rhodan".IO]
I wasn't really sure what bill was thinking there, because my impression was that junctions, by design aren't supposed to be treated as compound data structures, they're a *single* thing but with multiple values that co-exist with each other in "superposition". For example, you can't get a count of the number of elements in a junction: my $junction = any( 'a', 'b', 'c' ); say $junction.elems; # any(1, 1, 1) But then, this actually works: $junction>>.say; # a # b # c So going the other way, using a hyper operator to create a junction isn't such a silly thing to look at... Though really then this idiom creates an array of multiple any junctions with single values, which would behave just like the individual values themselves: my $values = < A B C >; my $junction2 = $values>>.any; say $junction2; # (any(A) any(B) any(C))