Главная
Web-мастеру:
PHP
Perl
JavaScript
CSS
HTML
Заработок
Программисту:
DirectX
OpenGL
Pascal
Пользователю:
Windows
BIOS
Посетителю:
ЖУРНАЛ
Голосование
Гостевая
Юмор
Обмен WM
Партнеры
Републикация
Написать

Рассылка MailList.Ru

Новости сайта
Заработок
Раскрутка

 
 
EarnForum - Форум, на котором платят 0.9 цента за сообщение, минимальная сумма для выплат - 1$.
 
RoundBar - обменник текстовыми баннерами, выкупает показы!!! Внимание!!! Акция!!! Присоеденяйся сейчас и получи 5000 показов в подарок от системы!!!
 
Поиск в Сети:



uaportal.com
Главная => Perl => Спецификация Perl =>
Предыдущее Cтруктуры данных Следущее
Cтруктуры данных


  • Cтруктуры данных

    Cтруктуры данных


    Perl поддерживает три типа данных:
    • скаляры
    • массивы скаляров
    • ассоциативные массивы скаляров (так называемые хэши).
    Обычные массивы, как и в языке C, индексируются числами, начиная с нуля. Ассоциативные массивы индексируются строками. Простые скаляры (в дальнейшем мы будем также называть их переменными) всегда начинаются со знака доллара: $, даже в том случае, когда мы обращаемся к элементу массива.
     ¯
    
    $day         простая переменная day
    
    $day[28]     29  элемент массива day
    
    $day{'Feb'}  значение 'Feb' из хэша %day
    
    $#day        последний индекс массива @day
    
    
    Простой массив начинается со знака @:
     ¯
    
       @day         массив day - ($day[1],$day[2],...)
    
       @day[3,4,5]  то же, что и @day[3..5]
    
    
    Ассоциативный массив (хэш) начинается со знака процент %:
    %day (key1, val1, key2, val2, ...)
    Каждый тип данных имеет свое именное пространство, поэтому вы можете использовать одно и то же имя одновременно для скалярной переменной, массива или хэша (а также для подпрограммы или метки) без опасения, что произойдет ошибка. Perl различает большие и маленькие буквы: FOO, foo и Foo будут рассматриваться Perl-ом как разные переменные. Имена, начинающиеся с буквы или знака подчеркивания, могут в дальнейшем содержать в себе цифры или знаки подчеркивания. Имена, начинающиеся с цифры, могут в дальнейшем содержать только цифры. Имена, начинающиеся не с буквы, цифры или подчерка должны состоять только из одного символа. Большинство таких имен зарезервировано, например $$ является идентификатором текущего процесса. Интерпретация команды или величины часто зависит от требований контекста. Существует два основных контекста: скалярный и списковый. Некоторые операции возвращают список величин если в контексте подразумевается список и одну величину, если контекст скалярный. Например, операция &ora_fetch в скалярном контексте возвращает количество выбранных строк:
    $nfields = &ora_fetch($csr);
    В списковом контексте она возвращает массив выбранных строк:
    @array = &ora_fetch($csr);
    Левый аргумент определяет контекст правого аргумента.

    Скалярные величины


    Скалярные переменные могут содержать различные простые типы данных, такие как числа, строки или ссылки. Они не могут содержать сложные типы, но могут содержать ссылку на массив или хэш. В булевском контексте скаляр принимает значение TRUE, если он содержит не нулевое число или не пустую строку. В Perl существует несколько способов записи чисел:
     ¯
    
      12345
    
      12345.67
    
      .23E-10
    
      0xffff            шестнадцатеричная запись
    
      0377             восьмеричная запись.
    
      1_234_567_890      подчерк для удобства чтения.
    
    
    Строки заключаются в одинарные или двойные кавычки. Использование кавычек в Perl такое же как в bourne shell-е: строка в двойных кавычках обрабатывается и вместо переменных подставляются их значения, а также обрабатываются бакслэш-последовательности, строки в одинарных кавычках рассматривается просто как последовательности символов. Используются также:
     ¯
    
      \t      табуляция
    
      \n     перевод строки
    
      \r      возврат каретки
    
      \b     пробел
    
      \e     символ Escape
    
      \033    восьмеричный формат
    
      \x1b    шестнадцатеричный формат
    
      \c[     управляющая последовательность (control)
    
      \a      сигнал (alarm)
    
      \f      переход на следующую страницу
    
    


    Простые массивы


    Perl позволяет произвольно удлинять массив путем обращения к элементу, индекс которого больше, чем последний индекс массива. Так же можно произвольно уменьшить длину массива.
    @day = ('a','b');
    $day[3] = 'c';
    Теперь массив day содержит три элемента: ('a','b','c').
    @day = (); или, что то же самое: $#day = -1;
    Теперь массив day пуст.
    (@day, @month, &SomeSub) содержит в себе элементы массива day, за ними следуют элементы массива month, а за ними результат выполнения подпрограммы SomeSub. Пустой массив обозначается (). Массив ((),(),(),()) эквивалентен пустому массиву. Последний элемент массива может быть массивом или хэшэм:
    ($a, $b, @c)= split;
    ($a, $b, %c)= @_;
    Любой элемент массива может быть массивом.

    Ассоциативные массивы


    Ассоциативные массивы или хэши содержат пары ``ключ'' и ``значение''. Например:
      \%map = ('red',0x00f,'blue',0x0f0,'green',0xf00);
    Часто для удобства чтения между ``ключом'' и ``значением'' ставят оператор =>.
      %map = (
    
              'red'   => 0x00f,
    
              'blue'  => 0x0f0,
    
              'green' => )xf00
    
             );


  • Rambler's Top100 Поддержите наш сайт в каталоге ресурсов НГС! Союз образовательных сайтов