the Perl 6 Wikipedia entry的更多信息
结
Perl 6引入了连接的概念:作为其他值复合的值.[24]在Perl 6设计的最初阶段,通过类比量子叠加量子物理学的概念,这些被称为“叠加” – 波形可以同时占据多个状态,直到观察“崩溃”为止. 2000年由Damian Conway发布的Perl 5模块称Quantum :: Superpositions [25]提供了一个初步的概念证明.起初,这种叠加的价值观似乎只是一个程式化的好奇心,随着时间的推移,它们的效用和直观性得到广泛的认可,而现在路口在Perl 6的设计中占据了中心位置.
在最简单的形式中,通过将一组值与接合运算符组合来创建交点:
my $any_even_digit = 0|2|4|6|8; # any(0,2,4,6,8) my $all_odd_digits = 1&3&5&7&9; # all(1,3,5,7,9)
|表示等于其左侧或右侧参数的值. &安培;表示与左手参数和右手参数相等的值.这些值可以在任何使用正常值的代码中使用.在连接处执行的操作同样对所有接头成员进行操作,并根据接合操作器进行组合.所以(“苹果”|“香蕉”)〜“s”会产生“苹果”|“香蕉”.在比较中,交点返回单个真或假结果进行比较.如果结点的任何一个元素的比较为真,则“任何”连接返回true.如果结点的所有元素的比较为真,则“全部”结返回true.
连接也可以用来更加丰富的类型系统,通过引入一种限制类型连接的泛型编程的风格:
sub get_tint ( RGB_Color|CMYK_Color $color,num $opacity) { ... } sub store_record (Record&Storable $rec) { ... }
解决方法
一个月内有多少天?
given( $month ){ when any(qw'1 3 5 7 8 10 12') { $day = 31 } when any(qw'4 6 9 11') { $day = 30 } when 2 { $day = 29 } }