По экрану пробежали непонятные строки но зато теперь перед вами открыты горизонты Перл программирования!
Все последующие примеры будут развитием этой программы и она превратится из гадкого утенка в прекрасного лебедя (не генерала).
Пример 3 Разделение полей.
#!/usr/local/bin/perl
open(PASS, «
while(
)
{
($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()
{
($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()
{
($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
write(); # Форматированный ывод данных.