<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Perl - 列表和數組 > 原文: [https://beginnersbook.com/2017/05/perl-lists-and-arrays/](https://beginnersbook.com/2017/05/perl-lists-and-arrays/) 在 Perl 中,人們可以交替使用術語列表和數組,但是存在差異。 **列表**是數據(標量值的有序集合),**數組**是保存列表的變量。 ## 如何定義數組? 數組以`@`符號為前綴。這就是你定義一個數組的方法: ```perl @friends = ("Ajeet", "Chaitanya", "Rahul"); ``` 這是包含三個字符串的字符串數組。另一種做法是: ```perl @friends = qw(Ajeet Chaitanya Rahul); #same as above ``` **注意**:`qw`代表引用的單詞,通過使用`qw`你可以避免引號并輸入更少。 學習 Perl 時,您可能會遇到幾個示例,其中您會看到以下類型的數組定義: ```perl @friends = qw/Ajeet Chaitanya Rahul/; #same as above ``` 這是因為 Perl 允許您選擇任何標點字符作為分隔符。 以下所有語句均相同: ```perl @friends = qw/Ajeet Chaitanya Rahul/; @friends = qw!Ajeet Chaitanya Rahul!; @friends = qw; @friends = qw{Ajeet Chaitanya Rahul}; @friends = qw[Ajeet Chaitanya Rahul]; ``` 注意:**開始和結束分隔符必須相同。** ## 訪問數組元素 您必須在另一個編程語言中使用過數組,如 C,C++,Java 等。數組的基本概念在這里是相同的。讓我們舉一個例子來了解如何定義數組以及如何訪問它的元素。 ```perl #!/usr/bin/perl @friends = ("Ajeet", "Chaitanya", "Rahul"); print "\$friends[0] = $friends[0]\n"; print "\$friends[1] = $friends[1]\n"; print "\$friends[2] = $friends[2]\n"; ``` **輸出:** ```perl $friends[0] = Ajeet $friends[1] = Chaitanya $friends[2] = Rahul ``` 正如你在上面的程序中看到的那樣,數組是用**`@`符號**進行的。因為,單個數組元素只是標量,它們是**`$`符號**的預設。 #### 范圍運算符: 范圍運算符由雙點`..`表示。此運算符用于創建順序列表。例如: ```perl #!/usr/bin/perl @num = (3..9); # same as (3, 4, 5, 6, 7, 8, 9) foreach $temp (@num) { print "$temp\n"; } ``` **輸出:** ```perl 3 4 5 6 7 8 9 ``` 讓我們再看幾個例子來理解范圍運算符: ```perl (2.9..7.9) # same as (2, 3, 4, 5, 6, 7), values after decimal are truncated (9..3) # empty list, only works in increasing order (1, 3..6, 10, 12..14) # same as (1, 3, 4, 5, 6, 10, 12, 13, 14), ``` #### 運算符:`pop`和`push` `pop`運算符從數組中刪除最后一個元素并返回它。讓我們舉個例子來了解`pop`運算符的工作原理: ```perl #!/usr/bin/perl @num = (3..7); # same as (3, 4, 5, 6, 7) $n1 = pop(@num); # $n1 is 7, array is (3, 4, 5, 6) $n2 = pop(@num); # $n2 is 6, array is (3, 4, 5) print "\$n1 is: $n1\n"; print "\$n2 is: $n2\n"; print "array now has:\n"; foreach $temp (@num) { print "$temp\n"; } pop @num; # 5 is discarded, array is (3, 4) print "array now has:\n"; foreach $temp (@num) { print "$temp\n"; } ``` **輸出:** ```perl $n1 is: 7 $n2 is: 6 array now has: 3 4 5 array now has: 3 4 ``` `push`運算符在數組末尾添加一個元素。 **示例:** ```perl #!/usr/bin/perl @num = (10..12); # same as (10, 11, 12) push (@num, 9); # array is (10, 11, 12, 9) push (@num, 6); # array is (10, 11, 12, 9, 6) print "array now has:\n"; foreach $temp (@num) { print "$temp\n"; } @num2 = (11, 22, 33); push (@num, @num2); # adding another array to the end print "array now has:\n"; foreach $temp (@num) { print "$temp\n"; } ``` **輸出:** ```perl array now has: 10 11 12 9 6 array now has: 10 11 12 9 6 11 22 33 ``` #### 運算符:`shift`和`unshift` 正如我們在上面看到的那樣,`push`和`pop`操作符在數組末尾添加和刪除。`shift`和`unshift`在數組的開頭執行操作。 **`shift`運算符:** `shift`運算符的工作方式類似于`pop`運算符,但與`pop`運算符不同,它在數組的開頭執行運算。 ```perl #!/usr/bin/perl @num = (3..7); # same as (3, 4, 5, 6, 7) $n1 = shift(@num); # $n1 is 3, array is (4, 5, 6, 7) $n2 = shift(@num); # $n2 is 4, array is (5, 6, 7) print "\$n1 is: $n1\n"; print "\$n2 is: $n2\n"; print "array now has:\n"; foreach $temp (@num) { print "$temp\n"; } shift @num; # 5 is discarded, array is (6, 7) print "array now has:\n"; foreach $temp (@num) { print "$temp\n"; } ``` **輸出:** ```perl $n1 is: 3 $n2 is: 4 array now has: 5 6 7 array now has: 6 7 ``` **`unshift`運算符:** `unshift`運算符的工作方式類似于`push`運算符,但與`push`運算符不同,它在數組的開頭執行運算。 ```perl #!/usr/bin/perl @num = (10..12); # same as (10, 11, 12) unshift (@num, 9); # array is (9, 10, 11, 12) unshift (@num, 6); # array is (6, 9, 10, 11, 12) print "array now has:\n"; foreach $temp (@num) { print "$temp\n"; } @num2 = (11, 22, 33); unshift (@num, @num2); # adding another array to the beginning print "array now has:\n"; foreach $temp (@num) { print "$temp\n"; } ``` **輸出:** ```perl array now has: 6 9 10 11 12 array now has: 11 22 33 6 9 10 11 12 ``` #### `splice`運算符 在上一節中,我們學習了如何在數組上執行`push`,`pop`,`shift`和`unshift`操作。但是這些運算符存在限制,它們只在數組的開頭或數組的末尾執行。如果我們想在數組中間執行操作怎么辦?這就是`splice`運算符進入畫面的地方。 **語法:** ```perl splice @array_name, s, l, @another_array ``` `splice`運算符最多可以包含四個參數。 **第一個參數**是數組名,這里我們指定我們正在執行操作的數組 **第二個參數**是起點,如上所述,你可以在數組中間執行操作。這指定了操作的起點。 **第三個參數**是長度 **第四個參數**是另一個列表或數組。 讓我們舉幾個例子來理解這個: #### 示例 1:`splice`中只有兩個參數 ```perl @myarray = qw(Rahul, Joe, Ajeet, Tim, Lisa); @myvar = splice @array, 2; # removes everything after Ajeet # @myarray is qw(Rahul, Joe, Ajeet) # @myvar is qw(Tim, Lisa) ``` `splice`運算符的第三和第四個參數是可選的。在上面的例子中,我們只提供了兩個參數,數組和起始點。與數組類似,`splice`運算符的索引從 0 開始,這意味著`Ajeet`是上例中的起點。如果我們只提供兩個參數,那么`splice`運算符會在起始點之后刪除所有內容。 #### 示例 2:三個參數 第三個參數指定已刪除元素列表的長度。在上面的例子中,我們沒有指定任何長度,這就是為什么它在起始點之后刪除了所有內容。現在,讓我們看看當我們提供第三個參數時會發生什么。 ```perl @myarray = qw(Rahul, Joe, Ajeet, Tim, Lisa); @myvar = splice @array, 2, 1; # removes only one element after Ajeet # @myarray is qw(Rahul, Joe, Ajeet, Lisa) # @myvar is qw(Tim) ``` #### 例 3:第四個參數 第四個參數是另一個列表或我們要插入到數組中的數組。 ```perl @myarray = qw(Rahul, Joe, Ajeet, Tim, Lisa); @myvar = splice @array, 2, 1, qw(Harsh, Alisha); # removes only one element after Ajeet # inserts the provided list at the same position # @myarray is qw(Rahul, Joe, Ajeet, Harsh, Alisha, Lisa) # @myvar is qw(Tim) ``` #### 示例 4:如果我們不想刪除任何內容,只需添加即可 如果您不想刪除任何內容,只需要在數組中間添加一些元素,然后可以將長度指定為 0。 ```perl @myarray = qw(Rahul, Joe, Ajeet, Tim, Lisa); @myvar = splice @array, 2, 0, qw(Harsh, Alisha); # removes nothing # inserts the provided list at the starting point # @myarray is qw(Rahul, Joe, Ajeet, Harsh, Alisha, Tim, Lisa) # @myvar is qw() ``` #### `reverse`運算符 `reverse`運算符將一個元素(或列表)數組作為輸入,并以相反的順序返回。例如: ```perl @myarray = 10..15; # same as (10, 11, 12, 13, 14, 15) @myarray2 = reverse @myarray; # @myarray2 has (15, 14, 13, 12, 11, 10) @myarray3 = reverse 5..9; # @myarray3 has (9, 8, 7, 6, 5) ``` 假設您想要反轉數組的元素并將其存儲到同一個數組中: ```perl @myarray = 10..15; @myarray = reverse @myarray; ``` **注意**:如果你只是寫下面的語句那么它就不行了。 ```perl reverse @myarray; ``` 這不會做任何事情,因為反向運算符不會更改數組元素的順序,它只是以相反的順序返回需要分配給數組的列表。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看