провайдер, выделенная линия, хости
нг статьи и документация | как выбирать провайдера | гостевая книга | e-mail | home | вход в базу  


В начало каталога провайдеров
Новости провайдеров
Список провайдеров по городам
Модемное подключение
Выделенная линия
Хостинг
Colocation
Интернет-карты
Тестовый доступ
Отзывы клиентов
Форум Москва
Форум Санкт-Петербург
Карта АТС
Статьи и документация
Интересные ссылки
Работа у провайдера
Провайдерам - как попасть в базу




Подпишись на новости!

Subscribe.ru:
Maillist.ru:
.

Почитать:

Программирование на PERL. Основы работы с HTML с использованием HTML::Parsertie.
PHP: Безопасность средствами суперглобальных массивов
Perl: Рисуем диаграммы с использованием GD::Graph
PHP: Библиотека обработки HTML-текста из PHP-скриптов
Perl: Создание графики на лету с использованием GD
mod_perl за 30 минут
RU.PHP FAQ
Программирование на PHP. Новый тип навигационной системы при постраничном выводе.
Программирование на PERL. Почему mod_perl?.
Программирование на ASP. Краткое введение в технологию.
Программирование на PERL. Построим web-интерфейс на Perle, если база - Oracle.
Программирование на PERL. Работа с базами данных. Краткое введение в DBI. . . . . . . .






Каталог провайдеров / Articles / Web / perl-introduction-book-maslov-1.html


Реклама
Нужна выделенная линия?

Тендер на providerZ.ru - заполни анкету и отправь запрос сразу в 10 компаний.



Следующий Предыдущий Содержание

1. От простого к сложному.

Прежде чем приступить к последовательному ознакомлению с не знакомым для вас языком, должен оговориться и сказать, что все примеры да и сам язык описанию которого посвящена эта книга это Perl версии 5.003 для операционной системы FreeBSD версии 2.01. Существуют реализации этого языка для операционных систем OS/2 , MS-DOS и Windows NT но они немного отстают по возможностям от оригинала, рожденного в недрах Юникса.

Пример 1.

Введите в файл test1.pl следующие строки:

#!/usr/local/bin/perl
# Содержимое файла test1.pl
print "Наше Вам с кисточкой!\n";

А теперь подробно разберем каждую строку.

#!/usr/local/bin/perl

Данная строка должна быть первой в любой Пел-программе. Она указыванет системному интерпретатору что данный файл - это Пел-программа.

# Содержимое файла test1.pl

Эта строка называется комментарием. Она всегда начинается символом '#' и заканчивается таким объяснением что как говорил великий Ходжа Насреддин "это тонкий филосовский вопрос", а говоря простым языком здесь можно писать все что угодно. Даже пожелание руководству. Уж здесь оно точно до него не дойдет.

print "Наше Вам с кисточкой!\n";

Самая последняя ну и конечно главная. Она просто выводит на экран надпись "Наше Вам с кисточкой!".

Здесь слово print - это команда "вывести". Все что в кавычках - это символы, \n - перевод строки и ';' - признак конца команды. Он обязателен. В одной строке может быть несколько команд и все они должны завершаться символом ';'. После него может быть символ '#' - это значит остаток строки считается комментарием.

Над этой строкой автору пришлось больше всего поломать голову так как в нее постоянно лезли какие то странные "hello", "hello all", "Построемся и спасемся", "Строй наше спасение" и т.д и т.п.

Если вы никогда не работали с Пел, то бъюсь на спор в 10$, что данная программа сразу у вас не заработает! Не потому что она не верна, а потому что "Нельзя объять необъятное". Сразу, потом можно, да и то частями. Сначало сделайте ваш файл test1.pl исполняемым. Для этого введите команду:

chmod +x test1.pl

Затем проверьте где у вас Пел. Для этого введите:

which perl

Система вам выдаст что то вроде: /usr/bin/perl

Если: perl: Command not found.

То тогда закройте книжку и ложитесь спать. У вас просто нет Пел или он не установлен. А мне остается послать вас к системному администратору или к man (для переводчиков- man сокращение от manual а не то что вы подумали).

Теперь проверьте что бы строка 01 содержала то что выдала команда which. Если совпало то введите:

test1.pl

и бъсь на 50$ что и теперь программа не заработает, так как правильней ввести:

./test1.pl

Если я проиграл, то не радуйтесь. Да же если вам удалось запустить программу как test1.pl это значит, что у вас будут неприятности в будущем.

Пример 2.

Данная программа выводит на экран все ваши секреты. А именно файл /etc/passwd.


        #!/usr/local/bin/perl
        open(PASS, "< /etc/passwd") || die "Файл не найден!";
        while(<PASS>)
            {
            print;
            }
        close(PASS);

Пояснения:

open(PASS, "< /etc/passwd") || die "Файл не найден!";

"Открыть" файл т.е. создать указатель файла PASS и в случае ошибки выдать "Файл не найден!" и закончить программу.

while(<PASS>)
        Читать по одной строке файла в переменную по умолчанию $_.
  {
        Открыть блок операторов.
  print;
        Вывести на экран переменную по умолчанию $_
   }
        Конец блока.
close(PASS);
        Закрыть файл. Этого можно и не делать так-как файл автоматически
закроется после окончания программы.

Результат работы этой программы тот же что и команды cat /etc/passwd. По экрану пробежали непонятные строки но зато теперь перед вами открыты горизонты Пел программирования! Все последующие примеры будут развитием этой программы и она превратится из гадкого утенка в прекрасного лебедя (не генерала).

Пример 3.

Разделенеие полей.


      #!/usr/local/bin/perl
      open(PASS, "< /etc/passwd") || die "Файл не найден!";
      while(<PASS>)
          {
            ($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
            print "$login \t $name\n";
          }
      close(PASS);

Пояснение:

($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
        Присвоить указанным переменным поля входной строки, считая разделителем символ ':'.
print "$login \t $name\n";
        Вывести login - имя пользователя и его описание. Поля разделены символом '\t' - табуляции.

Пример 4.

Вывести имена пользователей отсортированных по группам.

        #!/usr/local/bin/perl
        open(PASS, "sort -n -t : +3 -4 +0 /etc/passwd|") || die "Файл не найден!";
        while(<PASS>)
            {
            ($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
            print "$login \t $gid \t $name\n";
            }
        close(PASS);

Пояснения:

open(PASS, "sort -n -t : +3 -4 +0 /etc/passwd|") || die "Файл не найден!";
        В данной строке весь фокус! Входным файлом для нашей программы
стал выход команды sort которая и отсортирует входные данные.

Форматированный вывод.

Ну а теперь напечатаем на экране все наши данные в удобной форме.

#!/usr/local/bin/perl
open(PASS, "sort -n -t : +3 -4 +0 /etc/passwd|") || die "Файл не найден!";
while(<PASS>)
    {
    ($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
    write();    # Форматированный ывод данных.
    }
close(PASS);
exit 0;         # Завершение программы
############ Описание формы вывода ##################
format STDOUT =
Пользователь: ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                                $name
              ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                                $name
              ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                                $name
----------------------------------------------------------------------
Login:@<<<<<<<<   Uid:@<<<  Gid:@<<<  Home dir:@<<<<<<<<<<<<<<<<<<<<<
      $login,         $uid,     $gid,          $home_dir
----------------------------------------------------------------------
.       # Это последняя строка программы

Фрагмент результата:

Пользователь: Калужский ликеро-водочный завод. Лучшие водки и
              настойки. Звонить только перед праздником Кострикову
              Анатолию т. 2-23-06,,,
----------------------------------------------------------------------
Login:uucryst     Uid:1055  Gid:66    Home dir:/var/spool/uucppublic/
----------------------------------------------------------------------
Пользователь: Торговый Дом Дилен,,,
----------------------------------------------------------------------
Login:uudilen     Uid:1075  Gid:66    Home dir:/var/spool/uucppublic
----------------------------------------------------------------------

Если вам интересно узнать как работает эта программа, то переверните страницу и начините свое путешествие в мире Пел. Желаю удачи!


Следующий Предыдущий Содержание





поиск провайдера подключение по модему интернет-карты хостинг colocation выделенная линия тестовые входы отзывы об провайдерах интернет форум о провайдерах работа у ISP

Каталог провайдеров / Articles / Web / perl-introduction-book-maslov-1.html



Advert

Предложений::

Dial-up: 919
Хостинг: 190
Colocation: 140
Выделенная линия: 735

Закажи выделенную линию!

Новые отзывы

Отзывы о Cтрим (Stream)
Sochi Communication Center
CENTRAL TELEGRAPH
MTU-Intel
Corbina telecom
2COM
Web Plus
TambovCNIT
Tel
RiNet ISP
MTW-hosting

Интересные ссылки

What's New?
Holms.ru
Adsmart.ru
how-to.ru

Рекомендуем


Copyright © 1999-2000 Чегляков Алексей, Required Group
Design Милашенко Анастасия, Hosted by Rinet ISPSite engine RWSM CMS