什么是“$ 0 =〜s!。* / !!” perl中的意思?

时间:2014-02-21 07:11:53

标签: perl

我想知道

的含义
    "$0 =~ s!.*/!!"  

在perl中,我怎样才能学习这门语法? 欢迎各种答案。

1 个答案:

答案 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