Latest web development tutorials

perl Array

Array adalah nilai skalar disimpan daftar unordered variabel.

@ Awal array variabel. elemen akses array menggunakanvariabel $ + nama + [Indeks] untuk membaca format, contoh adalah sebagai berikut:

#!/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";

Program ini menggunakan simbol $ \ melarikan diri, jadi dia adalah output.

Program di atas, output adalah:

$hits[0] = 25
$hits[1] = 30
$hits[2] = 40
$names[0] = google
$names[1] = w3big
$names[2] = taobao

Membuat sebuah array

variabel array dengan simbol@ awal, unsur ini dalam tanda kurung juga dapat qwmulai mendefinisikan array.

@array = (1, 2, 'Hello');
@array = qw/这是 一个 数组/;

Array kedua menggunakanqw // operator, yang mengembalikan daftar string, elemen array dipisahkan oleh spasi.Tentu saja, Anda juga dapat menggunakan beberapa baris untuk mendefinisikan array:

@days = qw/google
taobao
...
w3big/;

Anda juga dapat menetapkan indeks untuk array, sebagai berikut:

$array[0] = 'Monday';
...
$array[6] = 'Sunday';

elemen akses array

elemen akses array menggunakanvariabel $ + nama + [Indeks] untuk membaca format, contoh adalah sebagai berikut:

@sites = qw/google taobao w3big/;

print "$sites[0]\n";
print "$sites[1]\n";
print "$sites[2]\n";
print "$sites[-1]\n";    # 负数,反向读取

Program di atas, output adalah:

google
taobao
w3big
w3big

indeks array dimulai dari 0, yang merupakan 0 untuk elemen pertama, elemen kedua adalah 1, dan seterusnya.

membaca negatif dari sebaliknya, -1 adalah elemen pertama, -2 adalah elemen kedua


nomor seri Array

Perl menyediakan urutan bisa dalam bentuk array output dalam formatnilai akhir nilai awal + + .., contoh adalah sebagai berikut:

#!/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

ukuran array

Konteks ditentukan oleh ukuran skalar array yang larik. :

@array = (1,2,3);
print "数组大小: ",标量 @array,"\n";

Mengembalikan panjang array adalah array dari ukuran fisik, bukan jumlah elemen, kita dapat melihat contoh berikut:

#!/uer/bin/perl

@array = (1,2,3);
$array[50] = 4;

$size = @array;
$max_index = $#array;

print "数组大小:  $size\n";
print "最大索引: $max_index\n";

Program di atas, output adalah:

数组大小:  51
最大索引: 50

Seperti dapat dilihat dari output hasil, elemen array hanya empat, tetapi ukuran array 51.


Menambahkan dan menghapus elemen array

Perl menyediakan sejumlah fungsi yang berguna untuk menambah dan menghapus elemen array.

Jika tidak ada pengalaman pemrograman sebelum Anda mungkin bertanya apa fungsi, pada kenyataannya, sebelum kitamencetak digunakan, yang merupakan fungsi output.

Tabel berikut berisi daftar fungsi manipulasi array yang umum:

Tidak. Jenis dan Deskripsi
1 mendorong @ARRAY, LIST

Daftar nilai-nilai ke akhir array

2 pop @ARRAY

Pop nilai array terakhir dan mengembalikannya

3 bergeser @ARRAY

Array pop nilai pertama dan mengembalikannya. Nilai indeks dari array yang berurutan minus satu.

4 unshift @ARRAY, LIST

Daftar di depan sebuah array dan mengembalikan jumlah elemen dalam array baru.

contoh

#!/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";

Program di atas, output adalah:


cutting Array

Kita bisa memotong sebuah array, dan mengembalikan array baru setelah pemotongan:

#!/usr/bin/perl

@sites = qw/google taobao w3big weibo qq facebook 网易/;

@sites2 = @sites[3,4,5];

print "@sites2\n";

Program di atas, output adalah:

weibo qq facebook

Anda perlu menentukan indeks yang valid dari nilai indeks array dapat negatif setelah angka positif, setiap nilai indeks dengan koma.

Jika indeks terus menerus, Anda dapat menggunakan.. untuk mewakili kisaran tertentu:

#!/usr/bin/perl

@sites = qw/google taobao w3big weibo qq facebook 网易/;

@sites2 = @sites[3..5];

print "@sites2\n";

Program di atas, output adalah:

weibo qq facebook

Ganti elemen array

Perl array yang elemen digunakan secara bergantian dalam sintaks fungsi sambatan () adalah sebagai berikut:

splice @ARRAY, OFFSET [ , LENGTH [ , LIST ] ]

Parameter Deskripsi:

  • @ARRAY: Untuk mengganti array.
  • OFFSET: posisi awal.
  • PANJANG: Ganti jumlah elemen.
  • LIST: Ganti daftar elemen.

Contoh-contoh berikut mulai menggantikan elemen keenam dari array lima elemen:

#!/usr/bin/perl

@nums = (1..20);
print "替换前 - @nums\n";

splice(@nums, 5, 5, 21..25); 
print "替换后 - @nums\n";

Program di atas, output adalah:

替换前 - 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

Mengkonversi string ke array

Perl akan mengkonversi sebuah array string menggunakan split () sintaks fungsi adalah sebagai berikut:

split [ PATTERN [ , EXPR [ , LIMIT ] ] ]

Parameter Deskripsi:

  • POLA: pemisah, ruang default.
  • EXPR: Menentukan jumlah string.
  • LIMIT: Jika Anda menentukan parameter ini, jumlah elemen dalam array kembali.

contoh

#!/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

Program di atas, output adalah:

o
com
weibo

array dikonversi ke string

Perl di array ke string menggunakan sintaks fungsi bergabung () adalah sebagai berikut:

join EXPR, LIST

Parameter Deskripsi:

  • EXPR: Connector.
  • LIST: daftar atau array.

contoh

#!/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";

Program di atas, output adalah:

www-w3big-com
google,taobao,w3big,weibo

Sorting array

Perl semacam array menggunakan semacam () sintaks fungsi adalah sebagai berikut:

sort [ SUBROUTINE ] LIST

Parameter Deskripsi:

  • Subroutine: menentukan aturan.
  • LIMIT: daftar atau array.

contoh

#!/usr/bin/perl

# 定义数组
@sites = qw(google taobao w3big facebook);
print "排序前: @sites\n";

# 对数组进行排序
@sites = sort(@sites);
print "排序前: @sites\n";

Program di atas, output adalah:

排序前: google taobao w3big facebook
排序前: facebook google w3big taobao

Catatan: Sorting array diurutkan sesuai dengan nilai numerik ASCII. Jadi kami harus lebih baik pertama dikonversi ketika setiap elemen dari array semacam huruf kecil sebelum menyortir.


variabel khusus: $ [

Variabel$ khusus [indekspertama dari array, umumnya 0, jika kita$ [setke 1, nilai indeks pertama array adalah 1, yang kedua adalah 2, dan seterusnya. Contohnya adalah sebagai berikut:

#!/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";

Program di atas, output adalah:

网站: google taobao w3big facebook
@sites[1]: google
@sites[2]: taobao

Umumnya kami tidak menyarankan menggunakan variabel$ khusus [dalamversi baru dari Perl, variabel adalah usang.


menggabungkan berbagai

Elemen dari array adalah koma untuk memisahkan, kita juga bisa menggunakan koma untuk menggabungkan array, sebagai berikut:

#!/usr/bin/perl

@numbers = (1,3,(4,5,6));

print "numbers = @numbers\n";

Program di atas, output adalah:

numbers = 1 3 4 5 6

Anda juga dapat menanamkan beberapa array dalam array, dan digabung ke dalam array utama:

#!/usr/bin/perl

@odd = (1,3,5);
@even = (2, 4, 6);

@numbers = (@odd, @even);

print "numbers = @numbers\n";

Program di atas, output adalah:

numbers = 1 3 5 2 4 6

Pilih elemen dari daftar

Daftar dapat digunakan sebagai array menggunakan nilai indeks yang ditentukan dalam daftar setelah elemen tertentu dapat dibaca sebagai berikut:

#!/usr/bin/perl

$var = (5,4,3,2,1)[4];

print "var 的值为 = $var\n"

Program di atas, output adalah:

var 的值为 = 1

Demikian pula, kita dapat menggunakan dalam array.. untuk membaca kisaran tertentu dari unsur:

#!/usr/bin/perl

@list = (5,4,3,2,1)[1..3];

print "list 的值 = @list\n";

Program di atas, output adalah:

list 的值 = 4 3 2