создать указатель файла
PASSи в случае ошибки выдать «Файл не найден!» и закончить программу. while() Читать по одной строке файла в переменную по умолчанию
$_. { Открыть блок операторов
. print; Вывести на экран переменную по умолчанию
$_ } Конец блока. close(PASS); Закрыть файл. Этого можно и не делать так-как файл автоматически закроется после окончания программы. Результат работы этой программы тот же что и команды
cat /etc/passwd. По экрану пробежали непонятные строки но зато теперь перед вами открыты горизонты Перл программирования! Все последующие примеры будут развитием этой программы и она превратится из гадкого утенка в прекрасного лебедя (не генерала). Пример 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(); # Форматированный ывод данных. } close(PASS); exit 0; # Завершение программы ############ Описание формы вывода ################## format STDOUT = Пользователь: ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $name ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $name ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $name Login:@<<<<<<<< Uid:@<<< Gid:@<<< Home dir:@<<<<<<<<<<<<<<<<<<<<< $login, $uid, $gid, $home_dir .
|