Latest web development tutorials

بيرل صفيف

مجموعة هي القيمة العددية المخزنة قائمة غير مرتبة من المتغيرات.

@ بداية من مجموعة من المتغيرات. عناصر مجموعة الوصول باستخدام$ متغير + اسم + [المؤشر] لقراءة الشكل، والأمثلة على ذلك كما يلي:

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

عناصر مجموعة الوصول

عناصر مجموعة الوصول باستخدام$ متغير + اسم + [المؤشر] لقراءة الشكل، والأمثلة على ذلك كما يلي:

@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 هو العنصر الثاني


الرقم التسلسلي مجموعة

يوفر بيرل سلسلة يمكن أن يكون في شكل مجموعة من الناتج فيشكل قيمة نهاية قيمة البداية + + ..، والأمثلة على النحو التالي:

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


إضافة وإزالة عناصر مجموعة

يوفر بيرل عدد من الوظائف المفيدة لإضافة وإزالة عناصر المصفوفة.

إذا لم يكن هناك خبرة في البرمجة قبل قد تسأل ما هي وظيفة، في الواقع، قبل أنطباعة استخدام، وهذا هو وظيفة الانتاج.

يسرد الجدول التالي وظائف مجموعة التلاعب المشتركة:

لا. نوع والوصف
1 دفعARRAY، قائمة

قائمة القيم في نهاية مجموعة

2 ARRAY البوب

موسيقى البوب ​​في قيمة مجموعة الماضية، ويعود ذلك

3 تحويلARRAY

مجموعة البوب ​​القيمة الأولى والعودة. قيمة مؤشر المصفوفة هي بالتتابع ناقص واحد.

4 unshiftARRAY، قائمة

قائمة أمام مجموعة وإرجاع عدد من العناصر في مجموعة جديدة.

أمثلة

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

استبدال عناصر مجموعة

وتستخدم عناصر مجموعة بيرل بشكل متبادل في بناء الدالة لصق () كما يلي:

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

المعلمة الوصف:

  • ARRAY: لاستبدال مجموعة.
  • الأوفست: وضع البداية.
  • الطول: استبدال عدد من العناصر.
  • قائمة: استبدال قائمة عنصر.

بدأت الأمثلة التالية لاستبدال العنصر السادس من مجموعة من خمسة عناصر هي:

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

تحويل سلسلة إلى صفيف

بيرل سيتم تحويل مجموعة سلسلة باستخدام بناء الدالة انقسام () كما يلي:

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

المعلمة الوصف:

  • نمط: فاصل والمساحات الافتراضية.
  • 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

تحويل مجموعة إلى سلسلة

بيرل في صفيف إلى سلسلة باستخدام بناء الجملة وظيفة انضمام () كما يلي:

join EXPR, LIST

المعلمة الوصف:

  • EXPR: الموصل.
  • قائمة: قائمة أو مجموعة.

أمثلة

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

فرز مجموعة

بيرل صفائف نوع باستخدام نوع () بناء الدالة كما يلي:

sort [ SUBROUTINE ] LIST

المعلمة الوصف:

  • روتين فرعي: تحديد القواعد.
  • 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. لذلك كان علينا تحويلها أفضل أولا عند كل عنصر من مجموعة أحرف صغيرة نوعا قبل الفرز.


المتغيرات الخاصة: $ [

و$ المتغيرة الخاصة [مؤشرالأول من المصفوفة، عموما 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

عموما نحن لا نوصي باستخدام$ متغير خاص [فيالنسخة الجديدة من بيرل، المتغير عفا عليه الزمن.


دمج مجموعة

عنصر من مجموعة فاصلة لفصل، ويمكننا أيضا استخدام الفواصل لدمج مجموعة، على النحو التالي:

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