Latest web development tutorials

Perl массив

Массив представляет собой скалярное значение, хранящееся неупорядоченный список переменных.

@ Начало массива переменных. Элементы массива доступа с использованиемпеременной $ + имя + [индекс] для чтения формате, примеры заключаются в следующем:

#!/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/这是 一个 数组/;

Второй массив с помощьюКЯ // оператор, который возвращает список строк, элементов массива , разделенных пробелами.Конечно, вы можете также использовать несколько строк, чтобы определить массив:

@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 является вторым элементом


Массив серийный номер

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, LIST

Список значений в конец массива

2 поп - @ARRAY

Поп массив последнее значение и возвращает его

3 сдвиг @ARRAY

Массив поп первое значение и возвращает его. Значение индекса массива последовательно минус один.

4 unshift @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: исходное положение.
  • ДЛИНА: Заменить число элементов.
  • 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 () выглядит следующим образом:

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

Параметр Описание:

  • КАРТИНА: разделитель, по умолчанию пространства.
  • 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 () выглядит следующим образом:

join EXPR, LIST

Параметр Описание:

  • EXPR: Connector.
  • 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