Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Системное программирование > Шел и листинг через Perl


Автор: InfMag 16.2.2005, 12:10
Люди, как на перл написать листинг директорий. Увы на мне тока PHP, прошу помочь.
И еще подскажите как выполнять shell комманды через GET строчку, типа: http://server.com/index.php?cmd=...

Автор: GoodBoy 16.2.2005, 13:15
InfMag
Что значит "написать листинг директорий"?

Автор: opi 16.2.2005, 13:59
Ты имеешь в виду типа ls?
Код

$dir_name="/";
opendir(MD, $dir_name) || die("Cannot open directory: $dir_name\n");
@dir_files= readdir(MD);
closedir(MD);

foreach $f (@dir_files) {
       unless ( ($f eq ".") || ($f eq "..") ) {
               print "$f\n";
       }
}


Команды, используя функцию system, или просто ``; Например: $ls_out = `ls $dir_name`; Только будь осторожен, если будешь это использовать в web.

Цитата(InfMag @ 16.2.2005, 12:10)
Люди, как на перл написать листинг директорий. Увы на мне тока PHP, прошу помочь.
И еще подскажите как выполнять shell комманды через GET строчку, типа: http://server.com/index.php?cmd=...

Автор: InfMag 16.2.2005, 18:36
opi
Это не для распространения. Для себя. smile Яж не буду всем выдавать божественные дыры.
Добавлено @ 18:36
opi
Итак, еще раз. Я так и не понял как использовать shell функции... Нужен пример кода.

Автор: opi 16.2.2005, 19:47
Самый простой способ -- использовать такие кавычки: `. (Объчно это кнопка под ESC на qwerty клавиатуре.)
И вот пример:
Код

$disk_usage_command = 'du';
@disk_usage_output = `$disk_usage_command`;

foreach $l (@disk_usage_output) {
       $l =~ /^(\d*)\s(.*)$/;
       print "$2 is taking $1 bytes of disk space.\n";
}


Цитата(InfMag @ 16.2.2005, 18:36)
opi
Это не для распространения. Для себя.  smile  Яж не буду всем выдавать божественные дыры.
Добавлено @ 18:36
opi
Итак, еще раз. Я так и не понял как использовать shell функции... Нужен пример кода.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)