在perl中,如何清理在基于Unix的系统中用作文件名的字符串?
例如。 AX / 1234 / BB显然需要以某种方式处理正斜杠。
是否有任何模块可以解决此问题?
答案 0 :(得分:3)
unix文件名可以包含除$fn
和NUL之外的任何字符,因此以下内容可确保warn("Invalid file name") if $fn =~ m{[/\0]};
是有效的文件名。
$fn =~ s{[/\0]}{_}g;
但你没有说你想要检测错误的文件名;你说你想要消毒它们。但是,你没有说怎么做。也许您希望与他人一起替换非法人物?如果是这样,您可以使用以下内容:
ActionFilterAttribute
答案 1 :(得分:2)
File::Util
function escape_filename
就是这样做的。
use File::Util;
$result = escape_filename($str);