提交 db002052 编写于 作者: W wizardforcel

2019-10-16 22:10:05

上级 ba16ebf3
......@@ -4,8 +4,8 @@
循环用于重复执行一组语句,直到满足特定条件。在 perl 中,我们有以下循环结构。单击下面的链接,通过示例详细阅读它们。
* 循环的[:“For”循环用于重复一个语句或一组语句,已知次数。例如,如果我们想要显示从 1 到 10 的数字,那么我们可以使用执行 10 次的 for 循环。当事先不知道次数时,我们使用“While”循环。](https://beginnersbook.com/2017/02/for-loop-in-perl-with-example/)
* [while 循环](https://beginnersbook.com/2017/02/while-loop-in-perl-with-example/):如上所述,当我们事先不知道需要多少次重复循环时,我们更喜欢使用 while 循环。
* [do-while 循环](https://beginnersbook.com/2017/02/perl-do-while-loop-with-example/):它类似于 while 循环,但它们之间存在差异,而循环在评估条件后执行其中的语句集。而 do-while 首先执行语句集,然后评估条件。这就是为什么当我们需要至少执行一次语句时,我们更喜欢 do-while 循环。
* [foreach 循环](https://beginnersbook.com/2017/02/perl-foreach-loop-with-example/):当我们需要迭代数组时,通常使用此循环
* [直到循环](https://beginnersbook.com/2017/02/until-loop-in-perl-with-example/):此循环与 while 循环的行为正好相反。它执行语句块,直到给定条件返回 true。
\ No newline at end of file
* [`For`循环](https://beginnersbook.com/2017/02/for-loop-in-perl-with-example/)用于重复一个语句或一组语句,已知次数。例如,如果我们想要显示从 1 到 10 的数字,那么我们可以使用执行 10 次的`for`循环。当事先不知道次数时,我们使用`While`循环。
* [`while`循环](https://beginnersbook.com/2017/02/while-loop-in-perl-with-example/):如上所述,当我们事先不知道需要多少次重复循环时,我们更喜欢使用`while`循环。
* [`do-while`循环](https://beginnersbook.com/2017/02/perl-do-while-loop-with-example/):它类似于`while`循环,但它们之间存在差异,而循环在评估条件后执行其中的语句集。而`do-while`首先执行语句集,然后评估条件。这就是为什么当我们需要至少执行一次语句时,我们更喜欢`do-while`循环。
* [`foreach`循环](https://beginnersbook.com/2017/02/perl-foreach-loop-with-example/):当我们需要迭代数组时,通常使用此循环
* [`until`循环](https://beginnersbook.com/2017/02/until-loop-in-perl-with-example/):此循环与`while`循环的行为正好相反。它执行语句块,直到给定条件返回`true`
\ No newline at end of file
# 对于 Perl 中的循环示例
# Perl 中的`for`循环
> 原文: [https://beginnersbook.com/2017/02/for-loop-in-perl-with-example/](https://beginnersbook.com/2017/02/for-loop-in-perl-with-example/)
在本教程中,我们将学习如何在 Perl 中使用“for loop”。循环用于重复执行一组语句,直到满足特定条件。
在本教程中,我们将学习如何在 Perl 中使用`for`循环。循环用于重复执行一组语句,直到满足特定条件。
#### for 循环的语法:
#### `for`循环的语法:
```
for(initialization; condition ; increment/decrement)
......@@ -13,14 +13,14 @@ for(initialization; condition ; increment/decrement)
}
```
### for 循环的执行流程
### `for`循环的执行流程
当程序执行时,解释器总是跟踪将要执行的语句。我们将其称为控制流程或程序的执行流程。
第一步:在 for 循环中,初始化只发生一次,这意味着 for 循环的初始化部分只执行一次。
第一步:在`for`循环中,初始化只发生一次,这意味着`for`循环的初始化部分只执行一次。
第二步:在每次迭代时评估 **for 循环**的条件,如果条件为真,则循环体内的语句被执行。一旦条件返回 false,for 循环中的语句就不会执行,并且控制在 for 循环后被转移到程序中的下一个语句。
第二步:在每次迭代时评估`for`循环的条件,如果条件为真,则循环体内的语句被执行。一旦条件返回`false``for`循环中的语句就不会执行,并且控制在`for`循环后被转移到程序中的下一个语句。
第三步:每次执行 for 循环体后,for 循环的递增/递减部分执行。
第三步:每次执行`for`循环体后,`for`循环的递增/递减部分执行。
第四步:第三步后,控制跳转到第二步,重新评估条件。
......
# 而 Perl 循环用例子
# Perl `while`循环
> 原文: [https://beginnersbook.com/2017/02/while-loop-in-perl-with-example/](https://beginnersbook.com/2017/02/while-loop-in-perl-with-example/)
在上一个教程中,我们在 Perl 中讨论了 [for 循环。在本教程中,我们将讨论 while 循环。如前一个教程中所讨论的,循环用于重复执行一组语句,直到满足特定条件。](https://beginnersbook.com/2017/02/for-loop-in-perl-with-example/)
在上一个教程中,我们在 Perl 中讨论了[`for`循环。在本教程中,我们将讨论`while`循环。如前一个教程中所讨论的,循环用于重复执行一组语句,直到满足特定条件](https://beginnersbook.com/2017/02/for-loop-in-perl-with-example/)
#### while 循环的语法:
#### `while`循环的语法:
```
while(condition)
......@@ -13,11 +13,11 @@ while(condition)
}
```
### while 循环的执行流程
### `while`循环的执行流程
while 循环中,首先计算条件,如果它返回 true,则 while 循环中的语句执行。当 condition 返回 false 时,控件退出循环并跳转到 while 循环后的下一个语句。
`while`循环中,首先计算条件,如果它返回`true`,则`while`循环中的语句执行。当`condition`返回`false`时,控制流退出循环并跳转到`while`循环后的下一个语句。
**注意:**使用 while 循环时要注意的重点是我们需要在 while 循环中使用递增或递减语句,以便循环变量在每次迭代时都会发生变化,并且在某些情况下返回 false。这样我们就可以结束 while 循环的执行,否则循环将无限期地执行。
**注意**:使用`while`循环时要注意的重点是我们需要在`while`循环中使用递增或递减语句,以便循环变量在每次迭代时都会发生变化,并且在某些情况下返回`false`。这样我们就可以结束`while`循环的执行,否则循环将无限期地执行。
#### 例
......
# Perl - do-while 循环示例
# Perl - `do-while`循环示例
> 原文: [https://beginnersbook.com/2017/02/perl-do-while-loop-with-example/](https://beginnersbook.com/2017/02/perl-do-while-loop-with-example/)
在上一个教程中,我们讨论了 [while 循环](https://beginnersbook.com/2017/02/while-loop-in-perl-with-example/)。在本教程中,我们将讨论 Perl 中的 do-while 循环。 do-while 循环类似于 while 循环,但是它们之间存在差异:在 while 循环中,在执行循环体之前评估条件,但是在执行循环体之后评估 do-while 循环条件。
在上一个教程中,我们讨论了[`while`循环](https://beginnersbook.com/2017/02/while-loop-in-perl-with-example/)。在本教程中,我们将讨论 Perl 中的`do-while`循环。`do-while`循环类似于`while`循环,但是它们之间存在差异:在`while`循环中,在执行循环体之前评估条件,但是在执行循环体之后评估`do-while`循环条件。
#### do-while 循环的语法:
#### `do-while`循环的语法:
```
do
......@@ -15,7 +15,7 @@ do
### 执行循环的流程
首先,循环内的语句执行,然后条件得到评估,如果条件返回 true,则控件转移到“do”,否则它会在 do-while 之后跳转到下一个语句。
首先,循环内的语句执行,然后条件得到评估,如果条件返回`true`,则控制流转移到`do`,否则它会在`do-while`之后跳转到下一个语句。
#### 例
......
# Perl - foreach 循环示例
# Perl - `foreach`循环示例
> 原文: [https://beginnersbook.com/2017/02/perl-foreach-loop-with-example/](https://beginnersbook.com/2017/02/perl-foreach-loop-with-example/)
foreach 循环用于迭代数组/列表。
`foreach`循环用于迭代数组/列表。
#### foreach 循环的语法:
#### `foreach`循环的语法:
```
foreach var (list) {
......@@ -12,9 +12,9 @@ foreach var (list) {
}
```
### foreach 循环的执行流程
### `foreach`循环的执行流程
foreach 循环中,循环继续执行,直到处理指定数组的所有元素。
`foreach`循环中,循环继续执行,直到处理指定数组的所有元素。
#### 例
......
# 直到 Perl 中的循环为例
# Perl 中的`until`循环
> 原文: [https://beginnersbook.com/2017/02/until-loop-in-perl-with-example/](https://beginnersbook.com/2017/02/until-loop-in-perl-with-example/)
直到循环行为与 perl 中的循环的[正好相反,while 循环继续执行,只要条件为真。在 until 循环中,只要条件为假,循环就会执行。](https://beginnersbook.com/2017/02/while-loop-in-perl-with-example/)
直到循环行为与 perl 中的循环的正好相反,只要条件为真`while`循环继续执行。在[`until`循环](https://beginnersbook.com/2017/02/while-loop-in-perl-with-example/)。中,只要条件为假,循环就会执行
#### until 循环的语法:
#### `until`循环的语法:
```
until(condition)
......@@ -15,7 +15,7 @@ until(condition)
### 执行直到循环的流程
首先评估条件,如果返回 false,则循环内的语句被执行。执行后,重新评估条件。这一直持续到条件返回 true。一旦条件返回 true,控件就会转到 next 循环之后的下一个语句。
首先评估条件,如果返回`false`,则循环内的语句被执行。执行后,重新评估条件。这一直持续到条件返回`true`。一旦条件返回`true`,控制流就会转到循环之后的下一个语句。
#### 例
......
......@@ -2,7 +2,7 @@
> 原文: [https://beginnersbook.com/2017/02/subroutines-and-functions-in-perl/](https://beginnersbook.com/2017/02/subroutines-and-functions-in-perl/)
Perl 允许您定义自己的函数,称为**子程序**。它们用于代码可重用性,因此您不必一次又一次地编写相同的代码。例如,如果您想在程序的多个位置从用户那里获取输入,那么您可以在子例程中编写代码并在需要输入的任何位置调用子例程。这样您就不必再次编写相同的代码,这也提高了代码的可读性。
Perl 允许您定义自己的函数,称为**子程序**。它们用于代码可重用性,因此您不必一次又一次地编写相同的代码。例如,如果您想在程序的多个位置从用户那里获取输入,那么您可以在子程序中编写代码并在需要输入的任何位置调用子程序。这样您就不必再次编写相同的代码,这也提高了代码的可读性。
#### 子程序的优点:
......@@ -14,7 +14,7 @@ Perl 允许您定义自己的函数,称为**子程序**。它们用于代码
#### 定义子程序
您需要做的第一件事是创建一个子例程。 **sub** 关键字用于定义 Perl 程序中的子程序。您可以选择任何有意义的子例程名称。
您需要做的第一件事是创建一个子程序。`sub`关键字用于定义 Perl 程序中的子程序。您可以选择任何有意义的子程序名称。
```
sub subroutine_name
......@@ -26,7 +26,7 @@ sub subroutine_name
#### 调用子程序
通过使用前缀为**&的子程序名称来调用子程序。** “性格。您也可以在调用子例程时传递参数。
通过使用前缀为`&`的子程序名称来调用子程序。您也可以在调用子程序时传递参数。
```
&subroutine_name; #calling without parameter
......@@ -65,9 +65,9 @@ Please enter something: Welcome to beginnersbook
You entered: Welcome to beginnersbook
```
### 将参数传递给子例程
### 将参数传递给子程序
在上面的例子中,我们在调用子例程时没有传递任何参数,但是我们可以在调用子例程时传递各种参数。所有参数(通常称为参数)都存储在特殊数组( **@_** )中。让我们看看下面的例子来理解这个:
在上面的例子中,我们在调用子程序时没有传递任何参数,但是我们可以在调用子程序时传递各种参数。所有参数(通常称为参数)都存储在特殊数组(`@_`)中。让我们看看下面的例子来理解这个:
```
#!/usr/bin/perl
......@@ -87,7 +87,7 @@ sub printparams {
This is my blog
```
在上面的例子中,我们使用特殊数组(@_)打印了所有参数。但是,如果需要,可以使用“$ _ [n]”显示所选参数,其中 n 是参数的索引,例如$ _ [0]将引用第一个参数,$ _ [1]将引用第二个参数。让我们举一个例子:
在上面的例子中,我们使用特殊数组(`@_`)打印了所有参数。但是,如果需要,可以使用`$_[n]`显示所选参数,其中`n`是参数的索引,例如`$_[0]`将引用第一个参数,`$_[1]`将引用第二个参数。让我们举一个例子:
```
#!/usr/bin/perl
......@@ -109,9 +109,9 @@ First Parameter: This
Fourth Parameter: blog
```
### 将数组传递给子例程
### 将数组传递给子程序
在上面的例子中,我们在调用子例程时传递了一些字符串参数。我们也可以将数组传递给子程序。这是一个例子:
在上面的例子中,我们在调用子程序时传递了一些字符串参数。我们也可以将数组传递给子程序。这是一个例子:
```
#!/usr/bin/perl
......
......@@ -2,12 +2,11 @@
> 原文: [https://beginnersbook.com/2018/03/perl-strings/](https://beginnersbook.com/2018/03/perl-strings/)
字符串是一系列字符。正如我们在 Scalars 指南中所讨论的那样,字符串被认为是 Perl 编程语言中的标量变量。有两种方法可以使用'(单引号)和“(双引号)在 Perl 中定义字符串。
字符串是一系列字符。正如我们在标量指南中所讨论的那样,字符串被认为是 Perl 编程语言中的标量变量。有两种方法可以使用`'`(单引号)和`"`(双引号)在 Perl 中定义字符串。
## 1\. Perl 中的字符串声明和初始化
## 1. Perl 中的字符串声明和初始化
由于字符串是标量,它们的名称以$
**开头例如:**
由于字符串是标量,它们的名称以`$`开头。**例如:**
```
my $website = "BeginnersBook";
......@@ -23,7 +22,7 @@ Chaitanya works for BeginnersBook
## 2 字符串插值 - 单引号和双引号
我已经在 Perl 文章的 [Scalars 中介绍了这个主题。](https://beginnersbook.com/2017/05/scalars-in-perl/)
我已经在[ Perl 标量的文章](https://beginnersbook.com/2017/05/scalars-in-perl/)中介绍了这个主题。
引号不是字符串的一部分,它们只是指定字符串的开头和结尾。您可能认为**单引号和双引号**都有相同的用途,但事实并非如此。它们用于不同的 2 例。要理解这两者之间的区别,让我们看一下下面的例子。
......@@ -38,7 +37,8 @@ Welcome to Beginnersbook.com
Welcome to\t Beginnersbook.com\n
```
您可以清楚地看到双引号内插转义序列“\ t”和“\ n”的区别,但是单引号没有。
您可以清楚地看到双引号内插转义序列`\t``\n`的区别,但是单引号没有。
**注意:**我们将在下一个教程中详细讨论转义序列。
**例 2:单引号和双引号:**
......@@ -66,24 +66,24 @@ Website Name: $website\n
例如如果你想在变量中存储**电子邮件地址**,那么双引号会引发错误,在这种情况下你需要使用单引号。对于例如
```
$email = "[email protected]"; would throw an error
$email = "[email protected]"; # would throw an error
$email = '[email protected]'; would work fine.
$email = '[email protected]'; # would work fine.
```
这里的问题是 **@gmail****内插为数组**。以@符号开头的变量被内插为数组。我们还可以通过使用 **\转义序列**避免双引号错误,我们已在下一节中讨论过。
这里的问题是`@gmail`**内插为数组**。以`@`符号开头的变量被内插为数组。我们还可以通过使用`\`转义序列避免双引号错误,我们已在下一节中讨论过。
### 2.2 Perl 中的反斜杠
反斜杠可以执行以下两个任务之一:
1)它消除了跟随它的角色的特殊含义。对于例如打印“\ $ myvar”;会产生$ myvar 输出而不是变量 myvar 值,因为$前面的反斜杠(\)消除了$的特殊含义
1)它消除了跟随它的字符的特殊含义。对于例如打印`\$myvar`会产生`$myvar`输出而不是变量`myvar`值,因为`$`前面的反斜杠(`\`)消除了`$`的特殊含义
2)它是反斜杠或转义序列的开始。对于例如\ n 是用于换行的转义序列
2)它是反斜杠或转义序列的开始。对于例如`\n`是用于换行的转义序列
#### 2.2.1 有什么用?
相信我,你会在 perl 中开发应用时经常使用它。假设您要打印包含双引号的字符串。对于例如如果我想打印:你好这是“我的博客”然后我需要使用以下逻辑:
相信我,你会在 perl 中开发应用时经常使用它。假设您要打印包含双引号的字符串。对于例如如果我想打印:`Hello This is "My blog"`然后我需要使用以下逻辑:
```
#!/usr/bin/perl
......@@ -104,7 +104,7 @@ Hello This is "My blog"
### 3.1 连接
要连接字符串,请使用点(。)运算符。在下面的例子中,我们连接三个字符串,$ str1,空格和$ str2
要连接字符串,请使用点(`.`)运算符。在下面的例子中,我们连接三个字符串,`$str1`,空格和`$str2`
```
$str1 = "Cherry";
......@@ -121,7 +121,7 @@ Cherry Coco
### 3.2 重复
要重复具有指定次数的字符串,请使用字符 x 后跟数字。在下面的示例中,我们使用了字符 x 之后的数字 4,这就是字符串在输出中重复四次的原因。
要重复具有指定次数的字符串,请使用字符`x`后跟数字。在下面的示例中,我们使用了字符`x`之后的数字 4,这就是字符串在输出中重复四次的原因。
```
$str = "Cherry";
......@@ -135,9 +135,9 @@ print "$mystr\n";
CherryCherryCherryCherry
```
### 3.3 获取 substring - substr()函数
### 3.3 获取子串 - `substr()`函数
substr()函数用于从给定字符串中获取子字符串。
`substr()`函数用于从给定字符串中获取子字符串。
```
use strict;
......@@ -180,9 +180,9 @@ My original String is: I know who you are, I will find you
My updated String is: I know you are the killer, I will find you
```
### 3.4 在 Perl - length()函数中查找 String 的长度
### 3.4 在 Perl - `length()`函数中查找字符串的长度
要在 Perl 中查找字符串的长度,请使用 length()函数。此函数计算字符串中的字符数(包括空格)并返回它。
要在 Perl 中查找字符串的长度,请使用`length()`函数。此函数计算字符串中的字符数(包括空格)并返回它。
```
use strict;
......@@ -199,7 +199,7 @@ length of my string is:35
### 3.5 Perl 中的字符串比较
为了比较两个字符串,我们使用 Perl 中的 eq [运算符。](https://beginnersbook.com/2017/02/perl-operators-complete-guide/)
为了比较两个字符串,我们使用 Perl 中的[`eq`运算符](https://beginnersbook.com/2017/02/perl-operators-complete-guide/)
```
use strict;
......
# Perl String Escape 序列
# Perl 字符串转义序列
> 原文: [https://beginnersbook.com/2018/03/perl-string-escape-sequences/](https://beginnersbook.com/2018/03/perl-string-escape-sequences/)
......@@ -6,7 +6,7 @@
## 在 Perl 中显示电子邮件地址
字符@在 perl 中有特殊含义。正如我们已经知道的那样,当我们将特殊字符放在双引号字符串中时,perl 会尝试对其进行插值。在下面的示例中,如果我们不在@ then 之前放置反斜杠而不是显示电子邮件,则会抛出错误,因为它会将@gmail 视为[数组](https://beginnersbook.com/2017/05/perl-lists-and-arrays/)
字符`@`在 perl 中有特殊含义。正如我们已经知道的那样,当我们将特殊字符放在双引号字符串中时,perl 会尝试对其进行插值。在下面的示例中,如果我们不在`@`之前放置反斜杠,则会抛出错误而不是显示电子邮件,因为它会将`@gmail`视为[数组](https://beginnersbook.com/2017/05/perl-lists-and-arrays/)
在单引号的情况下,不需要使用转义序列,因为插值不会出现在单引号字符串中。
......@@ -30,9 +30,9 @@ print "$email2\n";
[email protected]
```
## 转义双引号字符串中的$符号
## 转义双引号字符串中的`$`符号
我们已经知道美元符号会插入变量的值。如果你想逃避$符号并避免插值,请使用我们上面做的相同技巧 - 用反斜杠作为前缀。
我们已经知道美元符号会插入变量的值。如果你想转义`$`符号并避免插值,请使用我们上面做的相同技巧 - 用反斜杠作为前缀。
```
use strict;
......@@ -54,7 +54,7 @@ $name: Negan
$msg: I am Negan
```
## 如何转义转义字符反斜杠(\
## 如何转义转义字符反斜杠(`\`
在上面的例子中,我们使用反斜杠来转义特殊字符$和@。可能存在您希望在输出中显示反斜杠的情况。为此,你想要逃避反斜杠。让我们举个例子来理解这个:
......@@ -71,11 +71,11 @@ print "$say\n";
I do like to use backslash \
```
如您所见,我们在输出中显示了\
如您所见,我们在输出中显示了`\`
## 转义字符串中的双引号
我们知道双引号内的文本在 Perl 中被视为字符串。让我们说我们想在 Perl 中显示一个 String,字符串本身有一个双引号。我们将使用相同的方法,使用\转义引号。
我们知道双引号内的文本在 Perl 中被视为字符串。让我们说我们想在 Perl 中显示一个字符串,字符串本身有一个双引号。我们将使用相同的方法,使用`\`来转义引号。
```
use strict;
......@@ -90,9 +90,9 @@ print "$say\n";
I like to watch "The Walking Dead"
```
## 双 q 运算符 - qq
## 双`q`运算符 - `qq`
我们可以用双 q 运算符替换用于包含字符串的双引号。这样做的好处是我们不必担心使用双引号(“)和括号的转义序列。
我们可以用双`q`运算符替换用于包含字符串的双引号。这样做的好处是我们不必担心使用双引号(`"`)和括号的转义序列。
```
use strict;
......@@ -109,11 +109,11 @@ My name is "Chaitanya" and I like brackets ()
请参阅我没有使用双引号和括号的转义序列。
## 单 q 运算符 - q
## 单`q`运算符 - `q`
q 运算符就像单引号一样工作。其中存在的特殊字符不进行插值。
`q`运算符就像单引号一样工作。其中存在的特殊字符不进行插值。
让我们采用上面在 double q 运算符中看到的相同示例。
让我们采用上面在`q`运算符中看到的相同示例。
```
use strict;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册