我不知道一点点Perl并且必须修复Perl脚本中的错误.
给定$myvar包含字符串的变量,如果第一个字符是点,则将其替换为"foo/bar".
我怎样才能做到这一点?
(如果你能猜到这个bug,可以获得奖励积分)
$myvar =~ s+^\.+foo/bar+ ;
Run Code Online (Sandbox Code Playgroud)
你可以使用substr:
substr($myvar, 0, 1, "foo/bar") if "." eq substr($myvar, 0, 1);
Run Code Online (Sandbox Code Playgroud)
小智 5
一些substr魔力:
$_ eq '.' and $_ = "foo/bar" for substr $myvar, 0, 1;
Run Code Online (Sandbox Code Playgroud)
而这种语法让我爱上了perl 5.12
for(substr($myvar, 0, 1)) {
when('.') { $_ = "foo/bar" }
}
Run Code Online (Sandbox Code Playgroud)