summaryrefslogtreecommitdiff
path: root/fml/doc/ja/tutorial/internals/hook.sgml
blob: 629a256b8458240d9ccacd3c679f2b4604d020e3 (plain)
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<!--
   $FML: hook.sgml,v 1.1 2002/02/16 13:23:25 fukachan Exp $
-->

<chapter id="hook">
	<title>
	HOOK
	</title>


<sect1 id="hook.problems">
	<title>
	hook �ˤ����������
	</title>

<para>
hook ����̯�ʡ��⤷����ʣ���ʥ������ޥ����Τ��������ɬ�פǤ���
�Ǥ����������ˤ����ƤϤ����Ĥ������꤬����ޤ���
</para>

<para>
�ޤ������� hook ��̾���˰���δ�बɬ�פǤ���
$START_HOOK �Τ褦��ۣ��ʤ�ΤǤϤʤ���
</para>

<para>
�ޤ���HOOK �ν��������礦���礦�ɤ��ʤ��Ƥ�ư���Τ��褤�Ǥ��礦��
�̾�
use strict;
�ˤʤäƤ��ޤ�����
HOOK ��ɾ������ lexical scope �Ǥ�̵�뤹��褦�ˤ���٤��Ǥ��礦��
</para>

</sect1>


<sect1 id="hook.naming.convention">
	<title>
	hook ��̿̾��§
	</title>

<para>
hook ̾����ɸ��Ū�ʷ����ˤĤ��Ƥ�
<screen>
�ץ������̾_�᥽�å�̾_start_hook
�ץ������̾_�᥽�å�̾_end_hook
</screen>
�Τ褦�ˤ��뤳�Ȥˤ��ޤ���
�㤨�С�fmlconf �Υᥤ�����ʬ run() �� HOOK ��̾����
<screen>
fmlconf_run_start_hook
fmlconf_run_end_hook
</screen>
�Ȥʤꡢrun() ����Ǥ� hook �ƤӽФ��ϼ��Τ褦�ʥ����ɤˤʤ�ޤ���
<screen>
sub run
{
    my ($curproc, $args) = @_;
    my $config  = $curproc-&gt;{ config };

    my $eval = $config-&gt;get_hook( 'fmlconf_run_start_hook' );
    if ($eval) {
	eval qq{ $eval; };
	print STDERR $@ if $@;
    }

    $curproc-&gt;_fmlconf($args);

    $eval = $config-&gt;get_hook( 'fmlconf_run_end_hook' );
    if ($eval) {
	eval qq{ $eval; };
	print STDERR $@ if $@;
    }
}
</screen>
</para>

<para>
���¤ˤϤ�äȤ��������ʾ��� HOOK ���ʤ������ؤǤ��礦����
����̾���Ͼ�Ҥ� HOOK �ʳ������ꤷ�ޤ���
ñ��� hook2 �Ǥ����Τ��⤷��ʤ�����
��ǽ�Ǥ���Ф⤦�������򤷤䤹��̾���ˤ���٤��Ǥ��礦��
</para>

</sect1>


</chapter>