On Sun, 27 Oct 2002 [EMAIL PROTECTED] wrote: : : my @attrs = qw{ name type breed } : : my Pet @list=qw{ : : fido dog collie : : fluffy cat siamese : : } ~~ sub (@x) { map { _ => _ } @attrs x Inf ^, @x } : : ~~ sub (@x) { map { { _ , _ , _ } } @x ; : : by the way , ~~ seems to work like unix "|" pipe . : : in the Apo4 the entry says : : @a ~~ sub ( @x ) { ... } ----> &b(@a) : : will it hande that : : : @a ~~ map { _ => _ } : ~~ map { {_,_,_} } : : where the first *unsupplyed* argument to map : is expected to be *list* ?
The purpose of ~~ is first and foremost to return a reasonable boolean value in boolean context. The question is whether the one ~~ will notice the other ~~ operator in one of its arguments and thereby force that argument into boolean context, just as $x ~~ ?foo($^x) notices the ? and just calls foo() rather than trying to match the return value of foo(), as it would if you said: $x ~~ +foo() $x ~~ ~foo() I think it would be cool if there were a way to pull the arguments out to the front, because then we really could write in Japanese word order: @args wa $*OUT de print yo! : also , is here the following DWIMmery in place : : sub pairs ( $x,$y ){ $x => $y } ; : sub triples ( $x,$y,$z ){ {$x,$y,$z} }; : @a ~~ &pairs ~~ &triples ; : : ? : : so that ~~ will wrap "for" loop around "pairs" and "tripples" , : similar to "-n" perl flag ; This doesn't make sense to me. If you're trying to pass the parsed topic list to them, they should be returning a boolean value. If you're trying to return a set of values to be compared against @a, Perl's not going to also pass @a to your functions. Larry