簡書對插入代碼支持的不給力啊。 Perl 6 語法肯定識別不出, 但是空格對齊也不給力啊多艇。
Subset 可用于聲明某一類型的子集温艇。
輸入一個密碼因悲, 要求密碼必須滿足如下條件:
1、 至少 8 位
2勺爱、 必須包含大寫字母晃琳、小寫字母 和 數字
use v6;
subset Length8 of Str where *.chars < 8;
subset UpCase of Str where none('A'..'Z') ∈ *.comb.Set;
subset LowerCase of Str where none('a'..'z') ∈ *.comb.Set;
subset IntNumber of Str where none('0'..'9') ∈ *.comb.Set;
my $guess = prompt('Enter your password:');
given $guess {
when Length8 { say '密碼長度必須為 8 位 以上'; proceed }
when UpCase { say '密碼必須包括大寫字母'; proceed }
when LowerCase { say '密碼必須包含小寫字母'; proceed }
when IntNumber { say '密碼必須包含數字'; }
}
該程序具有可擴展性, 要增加一種密碼驗證琐鲁, 只有添加一個 subset 就好了卫旱,然后在 given/When 里面增加一個處理。
proceed :vi. 前進; 繼續(xù)下去围段。
proceed
相當于 continue
顾翼, 不像 C 里面的 falling through, Perl 6 里面的 proceed 在繼續(xù)執(zhí)行下一個 when
語句時會計算 when 后面的條件奈泪。 所以适贸, 只要有 proceed , 則 proceed 后面的那個條件就會被執(zhí)行涝桅。