为什么Perl不允许我从后缀比较中链接后缀循环?

wes*_*wes 2 syntax perl postfix-operator

还行吧:

$foo++ if $condition;
Run Code Online (Sandbox Code Playgroud)

这没关系:

$foo++ for (1..10);
Run Code Online (Sandbox Code Playgroud)

但这不是:

$foo++ if $condition for (1..10);
Run Code Online (Sandbox Code Playgroud)

如果事情并不复杂,我发现后者非常易读,而且它适用于一行!有没有办法做到这一点,还是我应该继续我的生活?

fri*_*edo 12

每个语句只能有一个后缀操作.但你可以通过使用一个do块来做你想要的(sorta),例如

do { $foo++ if $condition } for ( 1..10 );
Run Code Online (Sandbox Code Playgroud)

就个人而言,我发现这种风格极其混乱,难以阅读.如果我是你,我会避免它.如果你遇到了所有麻烦,你可以说

for( 1..10 ) { $foo++ if $condition }
Run Code Online (Sandbox Code Playgroud)

恕我直言.