Лучшее руководство по Perl массив в 2024 году. В этом руководстве вы можете изучить Создание массива,Доступ к элементам массива,Массив серийный номер,размер массива,Добавление и удаление элементов массива,массив резки,Заменить элементы массива,Преобразует строку в массив,Массив преобразуется в строку,Сортировка массива,Специальные переменные: $ [,Слияние массив,Выберите элемент из списка,
Массив представляет собой скалярное значение, хранящееся неупорядоченный список переменных.
@ Начало массива переменных. Элементы массива доступа с использованиемпеременной $ + имя + [индекс] для чтения формате, примеры заключаются в следующем:
#!/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 ru. w3big/;
Кроме того, можно назначить индекс массива, следующим образом:
$array[0] = 'Monday'; ru. $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 предоставляет последовательность может быть в виде массива вывода в форматеконечного значения начальное значение + + ru, примеры являются следующие:
#!/usr/bin/perl @var_10 = (1ru10); @var_20 = (10ru20); @var_abc = (aruz); 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
Необходимо указать допустимый индекс значение индекса массива может быть отрицательным после положительного числа, каждое значение индекса с запятыми.
Если индекс является непрерывным, вы можете использоватьru представлять указанный диапазон:
#!/usr/bin/perl @sites = qw/google taobao w3big weibo qq facebook 网易/; @sites2 = @sites[3ru5]; print "@sites2\n";
Вышеприведенная программа, выход:
weibo qq facebook
Perl элементы массива используются как взаимозаменяемые в синтаксисе функции сращивания () выглядит следующим образом:
splice @ARRAY, OFFSET [ , LENGTH [ , LIST ] ]
Параметр Описание:
Следующие примеры начинают заменять шестой элемент массива из пяти элементов:
#!/usr/bin/perl @nums = (1ru20); print "替换前 - @nums\n"; splice(@nums, 5, 5, 21ru25); 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 ] ] ]
Параметр Описание:
#!/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
Параметр Описание:
#!/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
Параметр Описание:
#!/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
Точно так же мы можем использовать в массивеru читать указанный диапазон элементов:
#!/usr/bin/perl @list = (5,4,3,2,1)[1ru3]; print "list 的值 = @list\n";
Вышеприведенная программа, выход:
list 的值 = 4 3 2