在Perl就可以編寫使用普通引號或這裏-doc的語句多字符串常量,但由於代碼縮進都算作字符串本身的內容,這一點無論廢墟格式化周圍的代碼,無論是需要我們在使用之前另外使用unindent字符串。在這一點上我用下面的子例程來取消縮進字符串文字:,取消縮進多行字符串字面量
sub unindent {
local $_ = shift;
$_ =~ s/^\s*$//mg;
$_ =~ s/^(\s*>>>\s)//mg;
return $_;
}
print unindent "
>>> #pragma once
>>> #include <...>
>>> ";
但不重新發明輪子,我想問一下是否已經有一些用於此目的的內置到Perl或上CPAN?
這是不使用全局默認變量'$ _'子程序內部時,它很容易只需要創建一個詞法變量,例如一個好主意'我的$ str = shift'。 – TLP
或'local $ _ = shift'。 – tobyink
@TLP,@tobyink,ops,我忘了'$ _'不會自動變成本地的。感謝您的更正! – firegurafiku