Perlの配列
配列は、変数の順不同のリストを格納されたスカラー値です。
@変数の配列の始まり。 次のようなフォーマットを読み取るために$変数+名+ [インデックス]を使用してAccess配列の要素は、例を示します。
#!/usr/bin/perl @hits = (25, 30, 40); @names = ("google", "w3big", "taobao"); print "\$hits[0] = $hits[0]\n"; print "\$hits[1] = $hits[1]\n"; print "\$hits[2] = $hits[2]\n"; print "\$names[0] = $names[0]\n"; print "\$names[1] = $names[1]\n"; print "\$names[2] = $names[2]\n";
プログラムは、エスケープする\ $記号を使用していますので、彼が出力されます。
上記のプログラムは、出力は次のようになります。
$hits[0] = 25 $hits[1] = 30 $hits[2] = 40 $names[0] = google $names[1] = w3big $names[2] = taobao
配列を作成します
@記号の開始と配列変数は、要素は、QW配列の定義を開始することができます括弧内にあります。
@array = (1, 2, 'Hello'); @array = qw/这是 一个 数组/;
スペースで区切られた文字列、配列要素のリストを返すのqw //演算子を使用して二番目の配列、。 もちろん、あなたも配列を定義するために複数の行を使用することができます。
@days = qw/google taobao ... w3big/;
また、次のように配列にインデックスを割り当てることができます。
$array[0] = 'Monday'; ... $array[6] = 'Sunday';
アクセス配列の要素
次のようなフォーマットを読み取るために$変数+名+ [インデックス]を使用してAccess配列の要素は、例を示します。
@sites = qw/google taobao w3big/; print "$sites[0]\n"; print "$sites[1]\n"; print "$sites[2]\n"; print "$sites[-1]\n"; # 负数,反向读取
上記のプログラムは、出力は次のようになります。
google taobao w3big w3big
配列インデックスは、最初の要素は0である、0から始まる、2番目の要素は1、以下同様です。
逆からの負のリードは、-1、最初の要素である-2二番目の要素であります
アレイのシリアル番号
Perlは次のようにシーケンスが+ + ..、例は、開始値終了値の形式で出力のアレイの形態であることができる提供します。
#!/usr/bin/perl @var_10 = (1..10); @var_20 = (10..20); @var_abc = (a..z); print "@var_10\n"; # 输出 1 到 10 print "@var_20\n"; # 输出 10 到 20 print "@var_abc\n"; # 输出 a 到 z
<p>执行以上程序,输出结果为:</p> <pre> 1 2 3 4 5 6 7 8 9 10 10 11 12 13 14 15 16 17 18 19 20 a b c d e f g h i j k l m n o p q r s t u v w x y z
配列のサイズ
コンテキストは、アレイ配列スカラーの大きさによって決定されます。 :
@array = (1,2,3); print "数组大小: ",标量 @array,"\n";
配列の長さは、物理的なサイズの配列ではなく、要素の数で返します、我々は次の例を参照してくださいすることができます。
#!/uer/bin/perl @array = (1,2,3); $array[50] = 4; $size = @array; $max_index = $#array; print "数组大小: $size\n"; print "最大索引: $max_index\n";
上記のプログラムは、出力は次のようになります。
数组大小: 51 最大索引: 50
結果出力からわかるように、アレイ要素は4つだけであるが、アレイ51のサイズ。
配列要素の追加と削除
Perlは配列の要素を追加および削除するために便利な機能を数多く提供しています。
我々は、使用を印刷する前に、実際には、機能が何であるかを尋ねることができる前に、プログラミングの経験をした場合、それは出力関数です。
次の表は、一般的な配列操作関数を示しています。
いいえ。 | 種類と説明 |
---|---|
1 | @ARRAY、LISTをプッシュ 配列の最後に値のリスト |
2 | ポップ@ARRAY 最後の値の配列をポップし、それを返します。 |
3 | シフト@ARRAY 配列は、最初の値をポップし、それを返します。 配列のインデックス値を順次-1です。 |
4 | 抜き@ARRAY、LIST 配列の前にリストして、新しい配列の要素数を返します。 |
例
#!/usr/bin/perl # 创建一个简单是数组 @sites = ("google","w3big","taobao"); print "1. \@sites = @sites\n"; # 在数组结尾添加一个元素 push(@sites, "baidu"); print "2. \@sites = @sites\n"; # 在数组开头添加一个元素 unshift(@sites, "weibo"); print "3. \@sites = @sites\n"; # 删除数组末尾的元素 pop(@sites); print "4. \@sites = @sites\n"; # 移除数组开头的元素 shift(@sites); print "5. \@sites = @sites\n";
上記のプログラムは、出力は次のようになります。
切断配列
私たちは、配列を切断し、切断後の新しい配列を返すことができます。
#!/usr/bin/perl @sites = qw/google taobao w3big weibo qq facebook 网易/; @sites2 = @sites[3,4,5]; print "@sites2\n";
上記のプログラムは、出力は次のようになります。
weibo qq facebook
あなたは、配列のインデックス値の有効なインデックスが正の数、カンマで各インデックス値の後に負の値になることが指定する必要があります。
インデックスが連続している場合は、指定した範囲を表すために..使用することができます。
#!/usr/bin/perl @sites = qw/google taobao w3big weibo qq facebook 网易/; @sites2 = @sites[3..5]; print "@sites2\n";
上記のプログラムは、出力は次のようになります。
weibo qq facebook
配列の要素を交換してください
Perlの配列要素は、スプライス()関数の構文では交換可能に使用される次のとおりです。
splice @ARRAY, OFFSET [ , LENGTH [ , LIST ] ]
パラメータ説明:
- @ARRAY:配列を交換します。
- OFFSET:開始位置。
- LENGTH:要素数を置き換えます。
- LIST:要素のリストを交換してください。
次の例では、5要素の配列の6番目の要素を置き換えるために始めています。
#!/usr/bin/perl @nums = (1..20); print "替换前 - @nums\n"; splice(@nums, 5, 5, 21..25); print "替换后 - @nums\n";
上記のプログラムは、出力は次のようになります。
替换前 - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 替换后 - 1 2 3 4 5 21 22 23 24 25 11 12 13 14 15 16 17 18 19 20
配列に文字列を変換
Perlは、分割を使用して、文字列配列に変換されます()次のように関数の構文は次のとおりです。
split [ PATTERN [ , EXPR [ , LIMIT ] ] ]
パラメータ説明:
- PATTERN:セパレータ、デフォルトのスペース。
- EXPR:文字列の数を指定します。
- LIMIT:このパラメータを指定すると、配列の要素数を返します。
例
#!/usr/bin/perl # 定义字符串 $var_test = "w3big"; $var_string = "www-w3big-com"; $var_names = "google,taobao,w3big,weibo"; # 字符串转为数组 @test = split('', $var_test); @string = split('-', $var_string); @names = split(',', $var_names); print "$test[3]\n"; # 输出 com print "$string[2]\n"; # 输出 com print "$names[3]\n"; # 输出 weibo
上記のプログラムは、出力は次のようになります。
o com weibo
配列は文字列に変換され、
次のように参加する()関数の構文を使用して文字列に配列内のPerlは次のとおりです。
join EXPR, LIST
パラメータ説明:
- EXPR:コネクタ。
- LIST:リストまたは配列。
例
#!/usr/bin/perl # 定义字符串 $var_string = "www-w3big-com"; $var_names = "google,taobao,w3big,weibo"; # 字符串转为数组 @string = split('-', $var_string); @names = split(',', $var_names); # 数组转为字符串 $string1 = join( '-', @string ); $string2 = join( ',', @names ); print "$string1\n"; print "$string2\n";
上記のプログラムは、出力は次のようになります。
www-w3big-com google,taobao,w3big,weibo
配列のソート
ソート()関数の構文を使用して、Perlのソート配列は次のとおりです。
sort [ SUBROUTINE ] LIST
パラメータ説明:
- SUBROUTINE:ルールを指定します。
- LIMIT:リストまたは配列。
例
#!/usr/bin/perl # 定义数组 @sites = qw(google taobao w3big facebook); print "排序前: @sites\n"; # 对数组进行排序 @sites = sort(@sites); print "排序前: @sites\n";
上記のプログラムは、出力は次のようになります。
排序前: google taobao w3big facebook 排序前: facebook google w3big taobao
注:配列をソートすると、ASCIIの数値に応じてソートされます。 配列の各要素は、ソート、ソート前に小文字ときに私たちはより良い最初に変換されていました。
特殊変数:$ [
特殊変数$ [我々は$ [1に設定した場合、配列の最初のインデックス、一般的に0は、配列の最初のインデックス値は、第二は2、などと1です。 例としては、次のとおりです:
#!/usr/bin/perl # 定义数组 @sites = qw(google taobao w3big facebook); print "网站: @sites\n"; # 设置数组的第一个索引为 1 $[ = 1; print "\@sites[1]: $sites[1]\n"; print "\@sites[2]: $sites[2]\n";
上記のプログラムは、出力は次のようになります。
网站: google taobao w3big facebook @sites[1]: google @sites[2]: taobao
一般的に我々は変数は廃止され、Perlの新しいバージョンの[特殊変数$を使用することはお勧めしません。
配列をマージ
配列の要素を分離するコンマで次のように、我々はまた、配列をマージするためにコンマを使用することができます。
#!/usr/bin/perl @numbers = (1,3,(4,5,6)); print "numbers = @numbers\n";
上記のプログラムは、出力は次のようになります。
numbers = 1 3 4 5 6
また、アレイ内の複数のアレイを埋め込み、およびメインアレイにマージすることができます。
#!/usr/bin/perl @odd = (1,3,5); @even = (2, 4, 6); @numbers = (@odd, @even); print "numbers = @numbers\n";
上記のプログラムは、出力は次のようになります。
numbers = 1 3 5 2 4 6
リストから要素を選択します
指定された要素を読み出すことができた後、次のようにリストは、リストに指定されたインデックス値を使用してアレイとして使用することができます。
#!/usr/bin/perl $var = (5,4,3,2,1)[4]; print "var 的值为 = $var\n"
上記のプログラムは、出力は次のようになります。
var 的值为 = 1
同様に、我々は要素の指定した範囲を読み取るために..アレイで使用することができます。
#!/usr/bin/perl @list = (5,4,3,2,1)[1..3]; print "list 的值 = @list\n";
上記のプログラムは、出力は次のようになります。
list 的值 = 4 3 2