Perl IO EventHandler для отмены строк - PullRequest
1 голос
/ 08 февраля 2010

Как мне создать обработчик событий в моем Perl-коде, чтобы перехватывать все вызовы, основанные на файлах / каталогах / системе, чтобы я мог не прерывать ввод точно в срок.

У меня много сценариев ввода-вывода в моем сценарии, и я считаю, что добавление кода вручную для устранения громоздкости не вызывает.

Можно ли это сделать без необходимости установки стороннего модуля CPAN?

Ответы [ 2 ]

1 голос
/ 08 февраля 2010

Как вы ожидаете, что не получите общие данные?Если вы просто слепо принимаете все, несмотря на его источник, нет смысла использовать проверку на заражение.

Возможно, вы захотите прочитать главу «Методы безопасного программирования» в Mastering Perl ,Я даю довольно много советов по работе с такого рода вещами.Однако любой хороший совет будет нацелен на конкретные ситуации, а не на обобщения.

1 голос
/ 08 февраля 2010

Можно попробовать использовать аспектно-ориентированный подход , но для этого требуется установить модуль CPAN, Aspect .

Чтобы захватить вызовы определенного метода / функции, вы определяете pointcut (взятый из Aspect POD):

$pointcut = call qr/^Person::[gs]et_/; # defines a collection of events

Затем определите код, который нужно принять перед вызовом:

$before = before {
  print "g/set will soon be called";
} $pointcut;

Хотя я не уверен, позволяет ли модуль Aspect перехватывать вызовы в пространстве имен CORE :: *.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...