Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl forloop中的不同结果?_Perl - Fatal编程技术网

Perl forloop中的不同结果?

Perl forloop中的不同结果?,perl,Perl,我想这样印刷 xxx xxxxx xxxxxxx xxxxxxxxx xxxxxxxxxxx 我通过以下代码实现了这一点 $s = "x"; $z = 5; $m = 1; $m = $m+2, $z--, $c = " " x $z, $st = $s x $m, print "$c$st\n", for(1..5); 我的怀疑 当我在打印函数后使用递增和递减运算符时,它给出了不同的结果 剧本是 $c = " " x $z, $st = $s x $m, print

我想这样印刷

    xxx
   xxxxx
  xxxxxxx
 xxxxxxxxx
xxxxxxxxxxx
我通过以下代码实现了这一点

$s = "x";
$z = 5;
$m = 1;

$m = $m+2,
$z--,
$c = " " x $z,
$st = $s x $m,
print "$c$st\n",
for(1..5);
我的怀疑

当我在打印函数后使用递增和递减运算符时,它给出了不同的结果 剧本是

$c = " " x $z,
$st = $s x $m,
print "$c$st\n",
$m = $m+2,
$z--,
for(1..5);
结果是

     x
35    xxx
54   xxxxx
73  xxxxxxx
92 xxxxxxxxx
这里3 5 7 9由
$m
打印,
5 4 3 2
$z
打印。 但是,我没有直接打印
$m
$z
,那么为什么它会给出
$m
$z
值呢?它是如何工作的?

代码

$c = " " x $z,
$st = $s x $m,
print "$c$st\n",
$m = $m+2,
$z--,
for(1..5);
解析为:

$c = " " x $z,
$st = $s x $m,
print ("$c$st\n", $m = $m+2, $z--),
for(1..5);
可以使用括号强制进行不同的分析:

$c = " " x $z,
$st = $s x $m,
print ("$c$st\n"),
$m = $m+2,
$z--
for(1..5);
但我建议如下:

for(1..5) {
  $c = " " x $z;
  $st = $s x $m;
  print ("$c$st\n");
  $m = $m+2;
  $z--;
}
这样,您就不会依赖任何可能对您不利的运算符优先级。您将立即看到哪些语句也包含在循环中。(我不得不把你最初的代码读了三遍才最终得到它)

代码

$c = " " x $z,
$st = $s x $m,
print "$c$st\n",
$m = $m+2,
$z--,
for(1..5);
解析为:

$c = " " x $z,
$st = $s x $m,
print ("$c$st\n", $m = $m+2, $z--),
for(1..5);
可以使用括号强制进行不同的分析:

$c = " " x $z,
$st = $s x $m,
print ("$c$st\n"),
$m = $m+2,
$z--
for(1..5);
但我建议如下:

for(1..5) {
  $c = " " x $z;
  $st = $s x $m;
  print ("$c$st\n");
  $m = $m+2;
  $z--;
}
这样,您就不会依赖任何可能对您不利的运算符优先级。您将立即看到哪些语句也包含在循环中。(我不得不把你最初的代码读了三遍才最终得到它)

代码

$c = " " x $z,
$st = $s x $m,
print "$c$st\n",
$m = $m+2,
$z--,
for(1..5);
解析为:

$c = " " x $z,
$st = $s x $m,
print ("$c$st\n", $m = $m+2, $z--),
for(1..5);
可以使用括号强制进行不同的分析:

$c = " " x $z,
$st = $s x $m,
print ("$c$st\n"),
$m = $m+2,
$z--
for(1..5);
但我建议如下:

for(1..5) {
  $c = " " x $z;
  $st = $s x $m;
  print ("$c$st\n");
  $m = $m+2;
  $z--;
}
这样,您就不会依赖任何可能对您不利的运算符优先级。您将立即看到哪些语句也包含在循环中。(我不得不把你最初的代码读了三遍才最终得到它)

代码

$c = " " x $z,
$st = $s x $m,
print "$c$st\n",
$m = $m+2,
$z--,
for(1..5);
解析为:

$c = " " x $z,
$st = $s x $m,
print ("$c$st\n", $m = $m+2, $z--),
for(1..5);
可以使用括号强制进行不同的分析:

$c = " " x $z,
$st = $s x $m,
print ("$c$st\n"),
$m = $m+2,
$z--
for(1..5);
但我建议如下:

for(1..5) {
  $c = " " x $z;
  $st = $s x $m;
  print ("$c$st\n");
  $m = $m+2;
  $z--;
}

这样,您就不会依赖任何可能对您不利的运算符优先级。您将立即看到哪些语句也包含在循环中。(我不得不把你最初的代码读了三遍才最终明白)

始终
严格使用;使用警告在脚本的开头。始终
使用strict;使用警告在脚本的开头。始终
使用strict;使用警告在脚本的开头。始终
使用strict;使用警告在脚本的开头。