【问题标题】:perl stat() does not work with filenames with special charactersperl stat() 不适用于带有特殊字符的文件名
【发布时间】:2013-03-01 12:16:45
【问题描述】:

如果文件名中包含像“@”这样的字符,perl 的 stat() 似乎不起作用。

-rw-r--r-- 1 root root 0 Mar  1 17:33 /tmp/mark@er.txt

使用的 Perl 命令:

#perl -e 'my $modtime = (stat("/tmp/mark@er.txt"))[9]|| die "$!"'
  No such file or directory at -e line 1.

谁能帮助如何为 stat() 转义这些字符?

【问题讨论】:

  • 尝试将@ 转义为\@

标签: perl stat


【解决方案1】:

perl在那里“看到”一个@er数组,所以你是stating /tmp/mark.txt。试试这个:

perl -e 'my $modtime = (stat("/tmp/mark\@er.txt"))[9] || die "$!"'

或者您可以通过 q() 使用非插值单引号(感谢 amon)

perl -e 'my $modtime = (stat(q(/tmp/mark@er.txt)))[9] || die "$!"'

【讨论】:

  • 也可以使用q{} 单引号来抑制插值,而不是引入通配符 (urgh)
猜你喜欢
  • 1970-01-01
  • 2014-04-17
  • 2021-09-05
  • 2012-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-03
  • 1970-01-01
相关资源
最近更新 更多