FAQ по perl и программированию для web - Основные возможности языка
ОГЛАВЛЕНИЕ
3. Как сделать на перле то-то (основные возможности языка)
3.1 Как пользоваться функцией pack (getpwuid, dmbopen)?
man perlfunc или "perldoc -f имя_функции | pod2text"
3.2 Как узнать размер файла (дату создания, атрибуты, разрешения на доступ)?
С помощью так называемых файловых тестов, которые имеют вид (-тест "имя файла"), например:
- (-s "file.txt")
размер файла
- -e
существует ли файл
- -w
доступен ли на запись
- -M
количество дней со дня модификации
- -t
является ли терминалом
3.3 Как отправить почту из скрипта на Perl?
Способ для Unix oт Alex Efros
open MAIL, '|/path/to/your/sendmail -t'; # Pipe к sendmail
print MAIL "From: Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.\n",
"To: Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.\n",
"Subject: Wow! I got some mail for you!!!\n\n",
$message;
close MAIL;
У меня не Unix! Что делать?
Вероятно, Вам поможет модуль Net::SMTP
3.4 Как отправить почту с вложениями (attachments)?
Возьмите на CPAN модуль MIME::Tools и прочтите от него README. (MIME-tools.xxxxx.tar.gz)
3.5 Как определить правильность адреса электронной почты Internet?
Гарантированно -- никак. Вы можете проверить адрес на правильность синтаксиса при помощи Email::Valid. И все. Если нужен гарантированно правильный e-mail для web-сайта, вы можете воспользоваться методом от Алексея Тутубалина: требовать пароль для доступа к информации, а сам пароль высылать по электронной почте. Тогда человек должен будет указать свой e-mail, конечно же, если ему интересна эта информация с вашего сайта.
3.6 Как написать модуль?
Простейший случай:
Сам модуль представляет из себя файл с именем 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.7 Как получить доступ к n-му символу строки?
Надо использовать функцию substr. Например, получить 15й символ из строки $string:
$char = substr($string, 15, 1);
Установить 15й символ строки $string:
substr($string, 15) = 'A';Можно даже использовать более чем односимвольные последовательности:
$ss = substr($string, 15, 5);
substr($string, 15) = 'Хо-Хо';