⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 showlex.pm

📁 Altera recommends the following system configuration: * Pentium II 400 with 512-MB system memory (fa
💻 PM
字号:
package B::Showlex;use strict;use B qw(svref_2object comppadlist class);use B::Terse ();## Invoke as#     perl -MO=Showlex,foo bar.pl# to see the names of lexical variables used by &foo# or as#     perl -MO=Showlex bar.pl# to see the names of file scope lexicals used by bar.pl#    sub shownamearray {    my ($name, $av) = @_;    my @els = $av->ARRAY;    my $count = @els;    my $i;    print "$name has $count entries\n";    for ($i = 0; $i < $count; $i++) {        print "$i: ";	my $sv = $els[$i];	if (class($sv) ne "SPECIAL") {	    printf "%s (0x%lx) %s\n", class($sv), $$sv, $sv->PVX;	} else {            $sv->terse;	}    }}sub showvaluearray {    my ($name, $av) = @_;    my @els = $av->ARRAY;    my $count = @els;    my $i;    print "$name has $count entries\n";    for ($i = 0; $i < $count; $i++) {	print "$i: ";	$els[$i]->terse;    }}sub showlex {    my ($objname, $namesav, $valsav) = @_;    shownamearray("Pad of lexical names for $objname", $namesav);    showvaluearray("Pad of lexical values for $objname", $valsav);}sub showlex_obj {    my ($objname, $obj) = @_;    $objname =~ s/^&main::/&/;    showlex($objname, svref_2object($obj)->PADLIST->ARRAY);}sub showlex_main {    showlex("comppadlist", comppadlist->ARRAY);}sub compile {    my @options = @_;    if (@options) {	return sub {	    my $objname;	    foreach $objname (@options) {		$objname = "main::$objname" unless $objname =~ /::/;		eval "showlex_obj('&$objname', \\&$objname)";	    }	}    } else {	return \&showlex_main;    }}1;__END__=head1 NAMEB::Showlex - Show lexical variables used in functions or files=head1 SYNOPSIS	perl -MO=Showlex[,SUBROUTINE] foo.pl=head1 DESCRIPTIONWhen a subroutine name is provided in OPTIONS, prints the lexicalvariables used in that subroutine.  Otherwise, prints the file-scopelexicals in the file.=head1 AUTHORMalcolm Beattie, C<mbeattie@sable.ox.ac.uk>=cut

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -