ПредишенСледващото

Масив на езика Perl - променлива, която съдържа списък от ценности. Променливата името на масива започва със символа @. И това е съвсем логично - @ символът се основава на буквата А, с това писмо започва думата масив - масива.

Масив в Perl може да съхранява списък със стойности от всякакъв тип. Тя може да бъде масив, в който се съхраняват в същото време и на линията, както и броя и нищо друго.

Определяне на масив и достъп до елементи

Ето един прост пример скрипт, за да се идентифицират и използват елементи масив в Perl:

Ако се сблъскате с този скрипт, ще се появи:

Какво става тук. На първо място, стандартната линия е започнал с всички Perl скриптове #! / ЮЕсАр / хамбар / Perl, то тогава има връзка (използване) на няколко функции на езика, които правят работата с Perl е по-удобно. И след това да създадете променлива @names и то се определя списък на 5-те линии.

Както много от езиците за програмиране Perl, на първия елемент на масива е с номер 0. След тази операция в променливите @names е както следва:

  • в тази променлива номерирани от 0 съхранява низ "Омир"
  • ред се запазва под номер 1 "Мардж"
  • 2 - "Барт"
  • 3 - "Лиза"
  • 4 - "Маги"

С цел да се измъкнем от позиция номер променлива @name 2 използва напълно идиотски форма - име $ [2]. Тук супер нелогично, че символа @ се заменят със символа $ Официалното обяснение за тази глупост - ние искаме да получите достъп до един и същ елемент, и променлив елемент започва с характер $, но това е просто грешка в дизайна на езика. В Perl версия 6 е фиксиран. Но в Perl версия 5 трябва да живее с него.

Той казва - показва, че масивът е под номер 0. След номер 0 в масива е "Омир" линия - и то се появява на екрана.

Дефиниране на масиви. Доплащане.

Само че ние определяме масив, като използвате този код:

Когато много от елементите в масива, че е по-удобно да ги запишете в колона:

Езикът Perl има никакви проблеми JSON - в Perl е позволено да укажете запетая след последния елемент:

(Всъщност, ако се изброят елементите на масива в колона, винаги трябва да укажете запетая след последния елемент - това е по-лесно да се работи с кода по-лесен за четене и разл).

Ако масива са редове от текст, които не разполагат пространства, тогава има по-лесен начин да се дефинира масив една - използване QW оператор:

QW оператор пресича текстът на което е връчено на празно пространство, и да се създаде елемент от списъка.

Ако искате да се създаде масив от списък с номера, които са в един ред, можете да използвате оператора.

Това е същото като:

Оператор. също така работи с буквите:

Тази функция на езика може да се използва по прост Perl една лайнери, за генериране на пароли:

заключение масиви

Понякога по време на развитието, което трябва да се види какво има вътре масива. Можете да използвате данните :: библиотека Dumper:

Ето изхода на този скрипт:

Ако имате Perl, тогава имате данните :: библиотека Dumper. Но ако се сложи допълнително библиотека на данните :: принтер, ще трябва да пиша по-малко писма за показване на съдържанието на масива:

И сценарият е много по-приятен заключение:

Perl масиви

Дължината на масива

Задача. В момента има една @names масив, трябва да знаете размера си - колко от него е елементи. Има няколко начина да направите това. Можете да използвате специална променлива, която съдържа индекса на последния елемент, или можете да използвате функция, Perl, наречена "контекст".

Когато има масив, който автоматично се предлага специална променлива, която указва индекса на последния елемент. Ние имаме един @names масив който съдържа 5 елементи и там е променлива $ # имена за него, която съдържа номер 4 (тъй като елементите са номерирани от 0, не 1). Ако броят на елементите в промените на масив, автоматично се променя и $ # имена.

Първият начин, за да получите броя на елементите в масива - е да вземе $ # имена и добавете по една:

Този метод работи перфектно валидно, но по-добър начин - е да се използва "контекста":

Какво става тук? На първо място, всичко е едно и също, както в предишния скрипт, но това се извършва:

Ние създаваме нов номер променлива $ в началото на името на тази променлива е символ $ - това означава, че типът на променливата - скаларна. От $ съвсем логично - тя е символ подобен на буквата S, която започва думата скаларни. Скаларни или скаларна променлива - променлива, която съдържа само една стойност. Тя може да бъде низ, число, или нещо друго.

И там е контекст тук. Контекст - това е много важно нещо в езика за програмиране Perl. В Perl език, в зависимост от контекста (т.е., от факта, че голям брой) са различни неща по различен начин. Контекст - трудно нещо. Но за да програмирате на Perl, което трябва да се разбере, работещи контекст ка.

изражението ми $ = Номерът на @names; Това означава, че ние имаме масив и да го използва като "скаларна контекст". В контекста на скаларна масив - броят на елементите в него, т.е. точно това, което искахме.

Ето още един пример за контекста на употреба. Можете да използвате масив в контекста на списък:

В резултат на тази операция - на скаларна променлива $ човек ще линия е "Омир", а в скаларна променлива $ жената ще е "Мардж" линия.

В сценария, за първи път се възлага масив за скаларна променлива и след това извежда стойността на променливата:

А какво ще стане, ако просто се покаже стойността на @names масив?

Това заключение е силно различен от броя 5. Обяснението - контекст. Ключова дума каже работа в контекста на списък. казват, показва всички елементи в списъка, който тя подаде. Но можете изрично да се посочи, че искаме да работим с множество в скаларна контекст:

В този случай, продукцията ще бъде 5.

Работа с масиви

Добавяне на елемент в края на масива:

Резултатът от тази операция - в масива ще @arr списък (1, 2, 3, "ABC");

С може да бъде добавен към масива използване на лицеви няколко елементи:

Резултатът от тази операция - в масива ще @arr списък (1, 2, 3, "ABC", "дефиниция");

Интересна особеност на едно натискане, за който малко хора знаят - тази функция е не само да се промени на масива, но и връща число - колко много елементи в масива е след добавяне масив от всички тези елементи. Така че задачата "да се намери броя на елементите в масива" може да бъде решен по този супер извратен начин:

Push функция добавя елемент (или елементи) в края на масива. Perl има функция за обратната операция - да се измъкнем от последния елемент на масива. Това се прави с помощта на поп (с помощта на тази функция, не можете да получите повече елементи, тази функция се извършва само един елемент).

След кода горе @arr спектър ще се състои от два елемента (1, 2) и SMTH броя на променливата $ 3 се съхранява.

С натискане / поп функции могат да работят с голям брой като комин.

Освен функциите, натиснете / поп, които са добавени / премахнати елементи в края на масива все още има промяна / unshift функции, които работят с началото на масива.

Добавяне на елемент в началото на масива:

След изпълнение на тези команди в масива се намира @arr списък ( "ABC", 1, 2, 3)

С unshift да добавите още елементи към началото на масива:

След изпълнение на тези команди в масива се намира @arr списък ( "ABC", "дефиниция", 1, 2, 3)

Точно като едно натискане, unshift връща число - броя на елементите в масива, след добавянето на всички елементи.

Контрол на първия елемент на масива с помощта на функцията за смяна:

След извършване на следните стъпки, масива ще се състои от два елемента (2, 3), и променлива $ елемент ще бивш първи елемент - числото 1.

  • unshift добавя елемент / елементи на масива
  • дърпа измести елемент от началото на масива
  • тласък добавя елемент / елементи на масива до края
  • поп елемент издърпва края на масива

Perl масиви

Преминаване през масива

Често проблемът - трябва да се премине през всички елементи на масив и да извършват с тях някои действия.

В Perl, както и в много други езици за програмиране, има един цикъл за. Ето как да се мине през всички елементи на масив, използвайки за:

Ето изхода на тази програма:

Тук всичко е стандартна и прост. Идентифицирана $ аз = 0, за да се провери, че състоянието е изпълнено, изпълнено тялото на цикъла, нарастване на тезгяха, провери, че условието е изпълнено, изпълнено тялото на цикъла, броячът се увеличава.

Но Perl предоставя лесен и удобен начин за обхождане на масива:

Perl има интересна особеност - променлива по подразбиране. Ако добре се посочи променлива за foreach, а след това ще донесе Perl всички елементи на масива в променлива подразбиране $ на _:

И ако да речем, че не уточняват никакви параметри, а след това казват, ще работи с променлива подразбиране. Така че можете да напишете същия цикъл, както следва:

И в Perl, можете да използвате постфиксната нотацията за foreach, така и съща този цикъл може да се запише:

Perl има докато цикъл, и може да се използва за обхождане масива. Такива като (точно в такава употреба се крие опасност):

По-конкретно, този пример работи по същия начин, както другите опции в този раздел. Но ако има undef елементи в масива, а след това този цикъл няма да работи на всички елементи:

Изходът на този скрипт:

Т.е. без "Маги". Можете да конвертирате известно време контур, за да работи правилно, например:

(Променливата $ # имена връща -1 в случай на празен масив).

Но по-лесно и по-лесно би било да се напише с помощта foreach:

Масивите в Perl се използват в писмена форма собствените си функции:

Тук дефинира функция на име say_hello. Когато ние го наричаме, от вътрешната страна разполага всички параметри, които дадохме това попадат в специална масив @_.

С вписването

ние продължавахме първия елемент на масива @_ името на променливата $.

@_ - е масив, така че можете да работите с тях по различен начин. Подобно на това:

Ако използвате промяната вътре в подводницата, не посочи параметрите на това, че ще работи с @_. Така че последният може да се запише:

Свързани статии

Подкрепете проекта - споделете линка, благодаря!