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