我正处于一些Perl代码的中间,我发现自己编写了如下所示的一行代码的怪异性。 Perl充满了很好的小捷径,只需要比这更好的方式吗?
所以 - 有更好的方法吗?
unless($config->{'case_transform'} eq 'NONE' ||
$config->{'case_transform'} eq 'UPPER' ||
$config->{'case_transform'} eq 'LOWER' ||
$config->{'case_transform'} eq 'CAPITAL' ||
$config->{'case_transform'} eq 'RANDOM')
{
$config->{'case_transform'} = 'NONE';
}
答案 0 :(得分:6)
my %good_value = map { $_ => 1 } qw( NONE UPPER LOWER CAPITAL RANDOM );
unless $good_value{$config->{case_transform}) {
$config->{case_transform} = 'NONE';
}
答案 1 :(得分:3)
还可以使用“Smart Match”运算符~~
。
use 5.010;
$config->{'case_transform'} = 'NONE'
unless $config->{'case_transform'} ~~
( 'NONE', 'UPPER', 'LOWER', 'CAPITAL', 'RANDOM' );
答案 2 :(得分:2)
unless ($config->{'case_transform'} =~ /^(NONE|UPPER|LOWER|CAPITAL|RANDOM)$/)
{
...
}
答案 3 :(得分:1)
$config->{'case_transform'} = 'NONE' unless $config->{'case_transform'} =~ /^(?:UPPER|LOWER|CAPITAL|RANDOM)$/;