Шрифт:
По экрану пробежали непонятные строки но зато теперь перед вами открыты горизонты Перл программирования!
Все последующие примеры будут развитием этой программы и она превратится из гадкого утенка в прекрасного лебедя (не генерала).
Пример 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
Если вам интересно узнать как работает эта программа, то переверните
страницу и начините свое путешествие в мире Перл.
Желаю удачи!
Запуск интерпретатора Перл
Синтаксис:
perl [ключи] файл аргументы
Перед стартом Перл ищет скрипт (программу) в следующем порядке: