$w = 'self-powering';
%h = (self => 'self',
power => 'pau?',
);
if ($w =~ /(\w+)-(\w+)ing$/ && $1~~%h && $2~~%h && $h{$2}=~/?$/) {
$p = $h{$1}.$h{$2}.'ri?';
print "$w:"," [","$p","] ";
}
Run Code Online (Sandbox Code Playgroud)
我期待输出
self-powering: selfpau?ri?
Run Code Online (Sandbox Code Playgroud)
但我得到的是:
self-powering: [ri?]
Run Code Online (Sandbox Code Playgroud)
我的猜测是代码有问题
$h{$2}=~/?$/
Run Code Online (Sandbox Code Playgroud)
好像我用的时候
$h{$2}!~/?$/
Run Code Online (Sandbox Code Playgroud)
Perl会做我的意思,但为什么我不能得到"自我动力:selfpauәriŋ"?我究竟做错了什么?有任何想法吗?
感谢任何意见/建议/指针:)
当你跑步
$h{$2}!~/?$/
Run Code Online (Sandbox Code Playgroud)
在if语句中,$ 1和$ 2的内容被更改为空,因为没有匹配的分组(没有分组).如果你这样做:
if ($w =~ /(\w+)-(\w+)ing$/){
my $m1 = $1;
my $m2 = $2;
if($m2~~%h && $m2~~%h && $h{$m2}=~/?$/) {
$p = $h{$m1}.$h{$m2}.'ri?';
print "$w:"," [","$p","] ";
}
}
Run Code Online (Sandbox Code Playgroud)
我希望你能得到你想要的东西.
| 归档时间: |
|
| 查看次数: |
188 次 |
| 最近记录: |