sub remove { my $string = shift; $string =~ s/[^a-zA-Z0-9.\-_]//g; return $string; } sub replace { my $string = shift; $string =~ s/[^a-zA-Z0-9.\-_]/_/g; return $string; } sub reversable { my $string = shift; $string =~ s/([^a-zA-Z0-9.\-_])/sprintf('=%x',unpack('C',$1))/eg; return $string; }