*   >> Чтение Образование Статьи >> tech >> web development

Основы ActivePerl Reference

Основы ActivePerl - Часть 18 Введение Это часть 18 моей серии, Основы ActivePerl. Область памяти представляет собой набор последовательных ячеек памяти. Значения переменных (содержание) хранятся в областях памяти. Переменная определяет область памяти. Ссылка является указателем на область памяти, и, как правило, используется, когда вы больше заинтересованы в том, что в области памяти, а не переменной. Рассмотрим ссылку в качестве адреса области памяти. Этот регион память может иметь значение. В этой части серии мы рассмотрим ActivePerl Reference.

Все изложенные в этом руководстве применяется к традиционным Perl. Примечание: Если вы не видите код или, если вы думаете, что-то отсутствует (неработающую ссылку, изображение отсутствует), просто свяжитесь со мной в [email protected]. То есть, свяжитесь со мной для малейшей проблемы у вас есть о том, что вы читаете. Память Регион Регион память область в памяти компьютера, который содержит значение переменной. По стоимости здесь, я имею в виду скалярное значение, массив или хэш.

Различные регионы памяти с различными переменными Рассмотрим следующие два последовательных высказывания: мой $ MYVAR =; "Я содержание большого текстового файла с жесткого диска, в настоящее время в памяти." мой $ аварского = "Я содержание большого текстового файла с жесткого диска, в настоящее время в памяти."; У вас есть два различных переменных с разными именами, но с теми же значениями строк. Переменная определяет область памяти. Два различных переменных с двумя разными именами определить два различных областей памяти, все равны.

В приведенном выше случае, два значения, даже если такие же, находятся в двух разных областях памяти. То же область памяти для двух различных переменных В ActivePerl вы можете сделать то же самое область памяти есть два различных переменных. Два различных переменных будет, конечно, определить то же самое значение. Рассмотрим следующие последовательные два заявления: мой $ MYVAR = "Я содержание большого текстового файла с жесткого диска, в настоящее время в памяти."; мой $ hisVar = \\ $ MYVAR; Для первого оператора у вас есть значение, присваиваемое переменной, $ MYVAR.

Во втором заявлении, $ MYVAR предшествует с \\ знак перед назначением на новую переменную, $ hisVar. \\ Является оператором. Во втором заявлении, \\ оператор, предшествующий первому переменную, делает вторую переменную определить ту же область памяти (то же значение) в качестве первой переменной. Важная вещь, чтобы отметить здесь, что \\ $ MYVAR относится к области памяти. Для второго утверждения, \\ $ MYVAR, с \\, является ссылка (адрес области памяти, идентифицированной $ MYVAR). $ hisVar является переменной, а не ссылка.

Мы скажем, $ MYVAR имеет значение (строка), в то время как $ hisVar имеет ссылку (адрес). Использование ссылки Теперь у вас есть ссылки, как вы можете получить значение области памяти, что переменная имеет в виду? Другими словами, переменная содержит ссылку на какой-либо области памяти, как вы можете получить значение этого региона памяти, используя переменную? В приведенном выше случае, $ hisVar держит ссылку на области, указанной на $ MyVar. Чтобы получить значение, используя $ MYVAR, нет никаких проблем, потому что вы просто должны использовать $ MYVAR вместо значения.

Чтобы получить значение из переменной ($ hisVar), который имеет ссылку, вы должны использовать {} скобки следующим образом: $ {$ hisVar} Здесь мы имеем дело со скалярным, так что вы начать со скалярным знака. Это сопровождается фигурные скобки. Внутри скобок вы иметь переменную, которая содержит ссылку. Следующий код иллюстрирует это: использовать строгий; печать "Content-Type: текст /HTML \\ п \\ п"; мой $ MYVAR = "Я содержание большого текстового файла с жесткого диска, в настоящее время в памяти."; мой $ hisVar = \\ $ MYVAR; печать $ {$} hisVar; То есть вы замените hisVar с {$} hisVar.

Скалярные и справочники выше объяснения применим к скаляров. Подобное применимо к массивам и хэшей. Тем не менее, с массивами и хэшей, есть два способа создания ссылки и два способа использования ссылки. Массив и справочники Рассмотрим следующий создание массива: мояarr = ("один", "два", 3, 4); Чтобы сделать ссылку изarr, вы должны предшествовать переменную с \\ знака, как следующее заявление иллюстрирует: мой $ Ареф = \\arr; Анонимный массив В предыдущем разделе, необходимо два заявления в порядке, чтобы придумать с ссылкой массива. Первое утверждение дает массив имя,arr.

Теперь, можно использовать только один оператор, чтобы придумать массива. В этом случае массив не будет иметь имя. Это будет просто ссылку на области в памяти, массив. Следующее утверждение иллюстрирует это: мой $ Ареф = ["один", "два", 3, 4]; Отметим здесь, что у нас есть квадратные скобки для разделения элементов массива, а не изогнутые кронштейны для списка, как и раньше. При этом условии, квадратные скобки возвращает ссылку (адрес памяти) в массив. Эта ссылка вернулся присваивается скалярной переменной, $ Ареф.

Вы не нуждаетесь в \\ знак здесь, так как массив не имеет имени и \\ должен быть использован перед именем. Примечание: Любая переменная, которая содержит ссылку скалярная переменная. Поэтому ссылка из массива или хэша проводится скалярной переменной. Использование массив Справочная один способ получить массив из ссылки на массив (переменной, содержащей ссылку) является использование скобок. Для приведенного выше ссылке, вы должны ввести, @ {$} Ареф Вы начинаете со знаком массива, @, так как вы имеете дело с массивом. Это сопровождается скобки.

Внутри скобок вы иметь переменную, которая содержит ссылку. Вы, как правило, не использовать массив в целом (как указано выше). Вы, как правило, используют элемент из массива. Для массива, который имеет имя, если вы хотите использовать имя массива, чтобы получить элемент, вы должны ввести что-то вроде, $ обр [2], где имя массива (переменной) являетсяarr. Если у вас есть ссылка на массив, вы делаете нечто подобное, но с фигурными скобками следующим образом: $ {$} Ареф [2] То есть вы замените, обр с {$} Ареф.

Другой способ доступа к элементам массива применяется, когда вы хотите, чтобы элемент из массива (это то, что вы делаете большую часть времени). С таким образом, вы не начать с предыдущей скалярного знак, $. Вы также опустить скобки. Тем не менее, вы будете следовать ссылки на массив переменной со стрелкой, -> (знак минус последующим больше, чем знак), как в следующем примере: $ Ареф -> [2], используя этот путь не зависит от того, ссылка на массив был из массива, который имеет имя или анонимный массив.

Читайте и попробуйте следующий код: использовать строгий; печать "Content-Type: текст /HTML \\ п \\ п"; мойarr = ("один", "два", 3, 4); мой $ Ареф = \\arr; печать $ {$} Ареф [1]; печатать "мой $ arRef = [" один "," два ", 3, 4]; печать $ arRef -> [3]; Хэш и справочники Рассмотрим следующий создание хэш: мой% ха = (Apple =>" фиолетовый ", Банан => "желтый", Груша => "зеленый", лимон => "зеленый"); Чтобы сделать ссылку из% га, у вас есть, чтобы перед ним с \\ знака, как следующее заявление иллюстрирует: мой $ HREF = \\% га; Анонимные Хэш В предыдущем разделе, необходимо два заявления для того, чтобы придумать хэш Первый оператор дает массив имя,% гектаров можно использовать только один оператор, чтобы придумать с.

. ... хэш В этом случае, хэш не будет иметь имя Это будет просто ссылку на области в памяти, хеш следующее утверждение иллюстрирует это: мой $ HREF = {Apple, => "фиолетовый", банан = > "желтый", Груша => "зеленый", лимон => "зеленый"}; Отметим здесь, что у нас есть скобки, чтобы разграничить хэш элементов, а не изогнутые кронштейны для списка, как и раньше При этом условии, скобки возвращает ссылку (. адрес памяти) в хэш. Эта ссылка вернулся присваивается скалярной переменной, $ HREF.

Вы не нуждаетесь в \\ знак здесь, так как хэш не имеет имени и \\ должен быть использован перед именем переменной (), который вернет ссылку. Примечание: Любая переменная, которая содержит ссылку скалярная переменная. Поэтому ссылка из массива или хэша проводится скалярной переменной. Ссылка скаляра еще проводится скалярной переменной. Использование хэш-Reference один способ получить хэш от ссылки на хэш (переменная содержащее ссылку) является использование скобок. Для приведенного выше ссылке, вы должны ввести,% {$} Ареф Вы начинаете со знаком хэш,%, так как мы имеем дело с хэш.

Это сопровождается скобки. Внутри скобок вы иметь переменную, которая содержит ссылку. Вы обычно не используют хеш в целом. Вы, как правило, использовать значение из хэша. Для хэш, который имеет имя, если вы хотите использовать имя хэш, чтобы получить значение, вы бы что-то типа как, $ {га 'ключ'}, где имя хэша (переменной) является $ га. Если у вас есть ссылка на хэш, вы делаете нечто подобное, но с фигурными скобками следующим образом: $ {'ключ'} То есть вы замените, ха {$ с HREF} {$} HREF.

Другой способ доступа к хэш применяется, когда вы хотите, чтобы элемент из хэша (это то, что вы делаете большую часть времени). С таким образом, вы не начать с предыдущей скалярного знак, $. Вы также опустить скобки. Тем не менее, вы будете следовать ссылки на массив переменной со стрелкой ->, как в следующем примере: $ HREF -> {'ключ'} Используя этот способ не зависит от того, ссылка хэш был из хэша, который имеет имя или анонимный хэш.

Читайте и попробуйте следующий код: использовать строгий; печать "Content-Type: текст /HTML \\ п \\ п"; мой% ха = (Apple => "фиолетовый", банан => "желтый", Груша => "зеленый", лимон => "зеленый"); мой $ HREF = \\% га; печать $ {$} {HREF «Яблоко»}; печать "мой $ haRef = {Apple, =>" фиолетовый ", банан =>" желтый ", Груша =>" зеленый ", лимон =>" зеленый "}; печать $ haRef -> {'Банан'}; Пасс Аргумент Ссылка на подпрограмму прочитанными и попробуйте следующий код: использовать строгое; печать "Content-Type: текст /HTML \\ п \\ п"; мой% ха = (Apple => "фиолетовый", банан => "желтый"); югу MySub {печати $ _ [0], "", $ _ [1], "", $ _ [2], "", $ _ [3], "", $ _ [4], "", $ _ [5], "";} MySub ("один", "два",% га); В вызове функции, первым аргументом является "одним", второй аргумент "два", а третий аргумент% га.

Как только определение функции начинается выполнение ", один" становится первым значение_; "два" становится вторым аргументом_ После этого детали хэша сглажены в остальных значений_:. В моем компьютере, Apple, станет пятым значение_ и это не очень хорошая идея, так как Apple, на самом деле является хэш-ключ. фиолетовый становится шестой значение_ в моем компьютере. Банан становится третьим значение_ в моем компьютере . В моем компьютере, желтый становится четвертым значение_. Обратите внимание, что аргумент хэш (% га) в вызывающей функции не является ссылкой. Это приводит к двум проблемам.

Пункты хэша выровнял в_ массива. Кроме того, хэш-элементы в массиве_ не в порядке, они были введены в создании хэша. Аналогичная проблема возникает с массивом. Чтобы решить эту проблему, то есть сохранить структуру хэш или массив, когда передается функции, вы должны передать хэш или массив по ссылке. Следующий код иллюстрирует это.

использовать строгий; печать "Content-Type: текст /HTML \\ п \\ п"; мой% ха = (Apple => "фиолетовый", банан => "желтый"); суб MySub {печати $ _ [0], "", $ _ [1], "", $ _ [2] -> {'Яблоко'}, "", $ _ [2] -> {'Банан'} ; } MySub ("один", "два", \\% га); Третий аргумент в вызове функции является ссылка на хэш. Это было достигнуто путем перед именем переменной хэш с \\ в скобках аргументов. Во исполнение определения функции, есть только три значения для_ массива предприятием. Первое значение для массива является первым аргументом в вызове функции; что все в порядке.

Второе значение массива второй аргумент вызова функции; что все в порядке. Теперь, третье значение массива является ссылкой на хэш; что принято. С этой ссылке, вы можете получить все значения хэш. Обратите внимание, как были получены два значения хэш в приведенном выше определении функции. Когда вы передаете массив или хэш в качестве аргумента обычно в функции, вы в конечном итоге с двумя копиями элементов в массиве или хэш: один экземпляр остается в пункты переменной массива или хэша. Другая копия из деталей в_ массива, когда функция вызывается.

В приведенном выше коде, структура хэш была сохранена и у вас есть только один экземпляр хэш элементов, которые те созданного (определенного) хэш. Оригинальный хэш с его структурой, конечно, сохраняется. Если вы назначили ссылку на хэш переменной (скалярных), вы все еще можете использовать переменную (который держит ссылку) в качестве аргумента в вызове функции.

Следующий код иллюстрирует это: использовать строгий; печать "Content-Type: текст /HTML \\ п \\ п"; мой% ха = (Apple => "фиолетовый", банан => "желтый"); мой $ HREF = \\% га; суб MySub {печати $ _ [0], "", $ _ [1], "", $ _ [2] -> {'Яблоко'}, "", $ _ [2] ->

Page   <<       [1] [2] [3] [4] [5] [6] >>
Copyright © 2008 - 2016 Чтение Образование Статьи,https://ru.nmjjxx.com All rights reserved.