我想知道
的含义 "$0 =~ s!.*/!!"
在perl中,我怎样才能学习这门语法? 欢迎各种答案。
答案 0 :(得分:8)
这会将脚本的名称($0
)截断为其基本名称。它对诊断很有用。没有截断,你的警告信息
warn "$0: Failed to mumble"
将出现
weird/long/path/to/mumble.pl: Failed to mumble at line 3.
而截断时,显示
mumble.pl: Failed to mumble at line 3.
所以这只是警告信息的可读性调整,真的。但这是一个常见的习语。
初学者的难点可能是认识到s!foo!bar!
只是说s/foo/bar/
的另一种方式。当你需要对包含斜杠的字符串执行替换时,这是天赐之物。如果没有这个语法糖,你需要反斜杠s/.*\///
斜杠,对于单斜杠来说不是太可怕,但很快就会导致leaning toothpicks。