我々は、中括弧にこのコードを囲むとき:デバッガがなぜ `use`文で停止するのですか?
#!/usr/bin/env perl
{
use warnings 'void';
1;
}
をデバッガがuse warnings 'void'
文で停止します。
main::(/home/kes/tmp/t3.pl:4): use warnings 'void';
DB<1> l 1-20
1 #!/usr/bin/env perl
2
3 {
4==> use warnings 'void';
5: 1;
6 }
7
しかし、私たちがいない場合:
#!/usr/bin/env perl
use warnings 'void';
1;
ないを行いデバッガをuse warnings 'void'
停止:
main::(/home/kes/tmp/t3.pl:5): 1;
DB<1> l 1-20
1 #!/usr/bin/env perl
2
3
4: use warnings 'void';
5==> 1;
6
7
しかし、わかるように、line 4
はまだ破損しているとマークされています。
これらの例の相違点
と、なぜデバッガがline 4
で停止しないのですか?
perlの内部でホットハックのように見える –
私は分かりません。 「ホットハック」とは何ですか? – ikegami
ベア・ループが 'nextstate'を作成しなかった場合、次のステートメントの' nextstate'が使用され、デバッガは 'use'ステートメントで停止しません。 –