Forum Webscript.Ru

Программирование => Perl => Тема начата: xmolex от 10 Апреля 2006, 10:53:12

Название: Информация о файле
Отправлено: xmolex от 10 Апреля 2006, 10:53:12
Здравствуйте уважаемые. Поискал по интернету. Ничего полезного не нашел. Может вы подскажете. Вопрос такой: каким способом можно узнать имя владельца и группу? Как я понял, благодаря stat можно узнать только uid,gid. А нужны имена. Заранее благодарен.
Название: Информация о файле
Отправлено: djkostya от 10 Апреля 2006, 11:22:11
А если так
ls -l
Название: Информация о файле
Отправлено: djkostya от 10 Апреля 2006, 11:23:34
Ну то есть в хэшик записать результат
Название: Информация о файле
Отправлено: xmolex от 10 Апреля 2006, 11:32:28
Конечно можно. Но хочется сделать многоплатформенный скрипт.
Название: Информация о файле
Отправлено: arto от 10 Апреля 2006, 11:58:04
perldoc -f getpwent
Название: Информация о файле
Отправлено: xmolex от 10 Апреля 2006, 12:10:46
Спасибо. Вижу, что копать нужно в этом направлении. Только не заработало. Может намекнешь в чем дело.

#!/usr/bin/perl -w
print "Content-type: text/html\\n\\n";
                  use File::stat;
                  use User::pwent;
$filename = "design.jpg";
                  $is_his = (stat($filename)->uid == pwent($whoever)->uid);
print"$is_his";

Говорит ошибка в $is_his = (stat($filename)->uid == pwent($whoever)->uid);
Название: Информация о файле
Отправлено: AnnA от 10 Апреля 2006, 13:13:45
Цитировать
xmolex:
узнать имя владельца и группу?

Цитировать
xmolex:
хочется сделать многоплатформенный скрипт.

тут у вас нестыковочка получается. ;)
Название: Информация о файле
Отправлено: xmolex от 10 Апреля 2006, 13:19:19
А разве в маки не в счет?
Название: Информация о файле
Отправлено: xmolex от 10 Апреля 2006, 13:19:27
А разве маки не в счет? Извиняюсь за лишнее сообщение. Случайно получилось.
Название: Информация о файле
Отправлено: xmolex от 10 Апреля 2006, 13:43:29
Цитировать
arto:
perldoc -f getpwent


А нет универсального способа? Я так понял, что такой метод будет работать только в никсах или там где есть /etc/passwd. Может есть какой-нибудь универсальный модуль? Не хочется загромождать программу. Она и так уже очень немаленькая.

И еще вопрос. Допустим у меня в переменной находится число. Как его преобразовать в восьмеричное и записать в эту же переменную, чтобы потом, когда нужно вывести? printf печатает сразу, а нужно просто записать результат в переменную.
Название: Информация о файле
Отправлено: arto от 10 Апреля 2006, 14:19:08
http://www.unix.org.ua/orelly/perl/sysadmin/ch03_02.htm
Название: Информация о файле
Отправлено: xmolex от 10 Апреля 2006, 14:25:05
Блин. Многовато кода будет пожалуй. Легче просто под никсы написать, на другие ОС забить. А что по второму вопросу?
Название: Информация о файле
Отправлено: arto от 10 Апреля 2006, 15:04:17
perldoc -f sprintf
Название: Информация о файле
Отправлено: xmolex от 10 Апреля 2006, 15:12:45
Цитировать
arto:
perldoc -f sprintf

Спасибо. Даже стыдно стало. До самого не дошло.