Latest web development tutorials

อาร์เรย์ 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 สำหรับองค์ประกอบแรกองค์ประกอบที่สองคือ 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

ที่สามารถเห็นได้จากการส่งออกผลองค์ประกอบอาร์เรย์เพียงสี่ แต่ขนาดของอาร์เรย์ที่ 51


การเพิ่มและลบองค์ประกอบมากมาย

Perl ให้จำนวนของฟังก์ชันที่มีประโยชน์เพื่อเพิ่มและลบองค์ประกอบมากมาย

ถ้าไม่มีประสบการณ์การเขียนโปรแกรมก่อนที่คุณอาจจะขอให้สิ่งที่เป็นฟังก์ชั่นในความเป็นจริงก่อนที่เราจะใช้พิมพ์ที่เป็นฟังก์ชั่นการส่งออก

ตารางต่อไปนี้แสดงฟังก์ชั่นการจัดการอาร์เรย์ที่พบบ่อย:

เลขที่ ประเภทและคำอธิบาย
1 ผลักดัน @ARRAY รายการ

รายการของค่าลงในตอนท้ายของอาร์เรย์

2 @ARRAY ป๊อป

Pop อาร์เรย์ค่าสุดท้ายและผลตอบแทนมัน

3 เปลี่ยน @ARRAY

อาร์เรย์ pop ค่าแรกและส่งกลับไป ค่าดัชนีของอาร์เรย์เป็นลำดับลบหนึ่ง

4 unshift @ARRAY รายการ

รายการในด้านหน้าของอาร์เรย์และส่งกลับจำนวนขององค์ประกอบในแถวใหม่

ตัวอย่าง

#!/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: ตำแหน่งเริ่มต้น
  • ความยาว: เปลี่ยนจำนวนขององค์ประกอบ
  • LIST: แทนที่รายการองค์ประกอบ

ตัวอย่างต่อไปนี้เป็นจุดเริ่มต้นที่จะเปลี่ยนองค์ประกอบที่หกของอาร์เรย์ของห้าองค์ประกอบ:

#!/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: ระบุจำนวนของสตริง
  • ได้สูงสุด: ถ้าคุณระบุพารามิเตอร์นี้จำนวนขององค์ประกอบในอาร์เรย์กลับ

ตัวอย่าง

#!/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: ระบุกฎ
  • ได้สูงสุด: รายการหรืออาร์เรย์

ตัวอย่าง

#!/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 ค่าตัวเลข ดังนั้นเราจึงมีดีกว่าแปลงแรกเมื่อองค์ประกอบของอาร์เรย์แต่ละการจัดเรียงตัวพิมพ์เล็กก่อนที่จะเรียงลำดับ


ตัวแปรพิเศษ: $ [

ตัวแปร$ พิเศษ [ดัชนีแรกของอาร์เรย์ทั่วไป0 ถ้าเรา$ [ตั้งค่าเป็น1 ค่าดัชนีแรกของอาเรย์คือ 1, ที่สองคือ 2 และอื่น ๆ ตัวอย่างมีดังนี้

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