> Properties *can* be smart-matched:
> 
>       print "creditcard" if $var.prop().{CreditCard} ~~ 'VISA';
> or:
>       print "creditcard" if $var.prop{CreditCard} ~~ 'VISA';
> or:
>       print "creditcard" if $var.CreditCard ~~ 'VISA';
> 
> Damian
> 

I think this is similar to "John Williams" suggestion:

 print "creditcard" if CreditCard( $var ) eq 'VISA';

It is something different to scan a database of card types and return a
list of possible matches, instead
of just testing one requested card type. What if CreditCard is such a
routine

 sub CreditCard
 {
        #connect to a "specific" database (VISA, MASTERCARD, ..)
        #compare with "non-blocked or valid" cards 
 } 

or 

 sub CreditCard
 {
        #cycle through all 800 CreditCard types and return matches
 } 

Then Damians suggetion

>       print "creditcard" if $var.CreditCard ~~ 'VISA';

could mean heavy processing, but

        print "creditcard" if $var ~~ CreditCard( 'VISA' );

would be short work.

Excerpt: My concept is to have a twofold view about "properties". One
thing that is attributing a type during decleration, and something that
could verified against in other context. All my thinking on that
orginates from Damians Attribute::Type.

Hopefully i do not confuse you too much.

Murat

Reply via email to