【发布时间】:2010-08-02 02:39:39
【问题描述】:
编辑:tr/// 不支持变量插值,所以我改用s/\Q$_\E//g;
或者,更有可能的是,我做的不对……
我有以下代码:
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
sub strip_invalid {
my ($str, @chars) = @_;
map { $str =~ tr/$_//; } @chars;
return $str;
}
my @invalid = qw( a e i o u );
print strip_invalid("This is the super sample with vowels.\n", @invalid);
我只想将一个字符串传递给strip_invalid() 并让tr/// 通过map 删除@invalid 中的字符...我哪里出错了? (顺便说一句,它可以使用正则表达式)。
【问题讨论】:
标签: perl functional-programming map transliteration