Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Отследить выполняемые действия в Perl-коде / 2 сообщений из 2, страница 1 из 1
30.03.2016, 15:17
    #39204237
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отследить выполняемые действия в Perl-коде
Подскажите, нет ли для Perl таких отладочных инструментов?
Есть веб-сайт на Perl, есть такая cgi-страница:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
#!/usr/bin/perl

use strict;
use warnings;

use lib '.';
use bmhead;

use BM::Module;
use BM::WWW::Operator::Service::ChangePassword;

{ # MAIN
    BM::WWW::Operator::Service::ChangePassword->handler();

    exit( 0);
}



Используемый модуль выглядит так (фрагмент):
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
package BM::WWW::Operator::Service::ChangePassword;

use strict;
use warnings;

use Crypt::GeneratePassword qw( chars);

use cfg;

use Logging;
use ActionLog;
use Navigator;

use BM::Exception qw( :try);
use BM::Exceptions;

use BM::Module;

use BM::CGI;
use BM::HTML::Template;
use BM::DBI;
use BM::Messages;
use BM::Error qw(Error);
use BM::GetForm;

use BM::Storable;
use Operator::Auth;

use BL::Service;
use BL::Service::Factory;

use constant MESSAGES    => "$cfg::dir_msg_operators/change_ser.msg";
use constant SG_MESSAGES => "$cfg::dir_msg_common/sg_errors.msg";
use constant TMPL        => "$cfg::dir_tmpl_operators/service/change_password.html";

use constant PARAM_0  => ...
use constant PARAM_1 => ...

our %info = ();

...

sub action {
    my( $auth, $insert) = @_;

    my $dbh = $auth->dbh();

    $dbh->begin_work();

    $insert->{service}->passwd($insert->{new_password});
    $insert->{service}->update();

    if( my $alog = new ActionLog( dbh => $dbh, auth => $auth)) {
        $alog->log(
                   service          => $insert->{service},
                   old_value        => $insert->{old_clnt_passwd},
                   new_value        => $insert->{new_password},
                   staff_comment    => "Operator edit service password: $insert->{description}",
                   action           => 'service_change_password'
                  );
    }

    $dbh->commit();

    print $auth->cgi()->redirect( "../deal_service?service_id=" . $insert->{service_id} . "&session_id=" . $auth->session_id());

    1;
}

...



Ну и далее начинаются такие взаимозависимости, что их уже отследить нереально.
Данный код по идее вносит изменения в БД, обновляя информацию в трех таблицах.
Но видимо он делает что-то еще, что я пока не нашел.
Подскажите, как можно включить подробное протоколирование всего, что происходит в Perl?
Точкой входа на каждой странице является модуль bmhead.pm, который сейчас практически пустой (в нем задается пара констант).
Можно ли с ним что-то сделать, чтобы например получить последовательность выполнения методов классов?

________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
30.03.2016, 18:57
    #39204477
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отследить выполняемые действия в Perl-коде
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Отследить выполняемые действия в Perl-коде / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]