(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
變量被替代的影響。