Next Previous Contents

3. Как сделать на перле то-то (основные возможности языка)

3.1 Как пользоваться функцией pack (getpwuid, dmbopen)?

man perlfunc или "perldoc -f имя_функции | pod2text"

3.2 Как узнать размер файла (дату создания, атрибуты, разрешения на доступ)?

С помощью так называемых файловых тестов, которые имеют вид (-тест "имя файла"), например:

(-s "file.txt")

размер файла

-e

существует ли файл

-w

доступен ли на запись

-M

количество дней со дня модификации

-t

является ли терминалом

(Как обычно, это неполный список. См. man perlfunc)

3.3 Как написать модуль?

Простейший случай:

Сам модуль представляет из себя файл с именем MyModule.pm следующего содержания:

MyModule.pm
package MyModule;
require Exporter;

@ISA = qw(Exporter);

@EXPORT = qw(идентификаторы для экспорта: подпрограммы, имена переменных и
пр.);
# Теперь после того, как вы напишите use MyModule в своей программе, у вас все 
# упомянутые здесь идентификаторы станут видны. Этот метод не рекомендуется,
# так как вы "засоряете" именное пространство программы.

# И/или
@EXPORT_OK = qw(идентификаторы для экспорта: подпрограммы, имена переменных и
пр.);
# Идентификаторы, прописанные здесь будут видны в Вашей программе как
# MyModule::Идентификатор (подпрограммы) или $MyModule::Идентификатор
# (переменные)
# Или, Вы можете написать use MyModule qw(Ид1 Ид2 $Ид3); и все будет как в
# первом случае. Это рекомендуемый вариант.

... ваши подпрограммы и пр ....

1; # Обязательно

Программа, его использующая:

myprg.pl
use MyModule qw(...);
# Ну и далее

Подробности смотрите в perlmod(1), Exporter(3pm), Camel Book

3.4 Как получить доступ к n-му символу строки?

Надо использовать функцию substr. Например, получить 15й символ из строки $string:

$char = substr($string, 15, 1);

Установить с 15го символа строки $string и обрезать ее:

substr($string, 15) = 'A';
Можно даже использовать более чем односимвольные последовательности:
$ss = substr($string, 15, 5);
substr($string, 15) = 'Хо-Хо';


Next Previous Contents