1N/A# Copyright (c) 1996 Malcolm Beattie 1N/A# You may distribute under the terms of either the GNU General Public 1N/A# License or the Artistic License, as specified in the README file. 1N/A croak "reached EOF while reading $len bytes" unless length($
data) == $
len;
1N/A croak "reached EOF while reading U8" unless defined($c);
1N/A croak "reached EOF while reading U16" unless length($
str) ==
2;
1N/A while (
defined($c = $
fh->
getc) && $c
ne "\0") {
1N/A croak "reached EOF while reading double" unless defined($c);
1N/A croak "reached EOF while reading U32" unless length($
str) ==
4;
1N/A croak "reached EOF while reading I32" unless length($
str) ==
4;
1N/A croak "reached EOF while reading objindex" unless length($
str) ==
4;
1N/A croak "reached EOF while reading opindex" unless length($
str) ==
4;
1N/A croak "reached EOF while reading svindex" unless length($
str) ==
4;
1N/A croak "reached EOF while reading pvindex" unless length($
str) ==
4;
1N/A while (
defined($c = $
fh->
getc) && $c
ne "\0") {
1N/A croak "reached EOF while reading strconst" unless defined($c);
1N/A croak "reached EOF while reading PV" unless length($
str) == $
len;
1N/A while (
defined($c = $
fh->
getc) && $c
ne "\n") {
1N/A croak "reached EOF while reading comment" unless defined($c);
1N/A while (
defined($c = $
fh->
getc) && $c
ne "\0") {
1N/A croak "reached EOF while reading double" unless defined($c);
1N/A croak "reached EOF while reading I32" unless length($
str) ==
8;
1N/A return sprintf "0x%09llx",
unpack(
"q", $
str);
1N/A warn(
"bad magic" )
if $
magic !=
0x43424c50;
1N/A bless $
fh,
"B::Disassembler::BytecodeStream";
1N/A while (
defined($c = $
fh->
getc)) {
1N/A die "Illegal instruction code $c at stream offset $pos\n";
1N/AB::Disassembler - Disassemble Perl bytecode 1N/AMalcolm Beattie, C<mbeattie@sable.ox.ac.uk>