EDIT: tr /// ne supporte pas l'interpolation de variables, alors je suis allé avec s/\Q$_\E//g;
à la placede la tr Perl /// ne fait pas ce que je veux
Ou, plus probablement, je ne fais quelque chose de bien .. .
Je le code suivant:
#!/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);
Je voudrais simplement passer une chaîne à strip_invalid()
et ont tr///
enlever les personnages @invalid
par un map
... Où est-ce que je me trompe? (en passant, en utilisant des expressions régulières cela fonctionne).