(my $batch_name = $batch_dir) =~ s#.*/##;
我在浏览脚本时遇到了这个声明并试图理解它。即使谷歌搜索 RHS 也没有返回任何有用的信息。有人可以帮我理解这句话的意思吗???
两个标量中的哪个受到影响?
(my $batch_name = $batch_dir) =~ s#.*/##;
我在浏览脚本时遇到了这个声明并试图理解它。即使谷歌搜索 RHS 也没有返回任何有用的信息。有人可以帮我理解这句话的意思吗???
两个标量中的哪个受到影响?
它从变量/
的副本中删除以 a 结尾的最长前缀,例如。$batch_dir
从文件系统路径生成叶子名称或提取正确转义的 url 的脚本、查询和片段部分。
该成语实际上包括两个操作:
my $batch_name = $batch_dir;
batch_name =~ s#.*/##;
没有括号,替换将被应用$batch_dir
并$batch_name
设置为从替换运算符返回的值,即成功状态(至少发生 1 次替换 => 1
,undef
否则)。
Parens()
的优先级高于=~
,所以 parens 里面的指令先执行。
首先赋值my $batch_name = $batch_dir;
完成,然后替换$batch_name =~ s#.*/##;
只有$batch_name
变量受替换影响。