perl 实现查找内置 package

其实这个功能 perldoc 与 cpan 都有,只不过学习perl 想练练手。

程序的功能是实现使用 正则表达式 查找 perl 中的内置 package,然后输出匹配的结果;如输入参数为空,则提示无参数;如输入参数中含有  /all 则输出所有的 package。

代码如下:

#!/usr/bin/perl
use strict;
use utf8;
use 5.010;

use Data::Dumper;
use Module::CoreList;
use List::Util qw /first max/;

sub checkArgs {
	my (@args) = @_;
	my $happy = first {/\/all/} @args;
	if($happy){
		@args = undef;
	}
	@args;
}

sub lengthstr {
	my (@args) = @_;
	foreach (@args){
		$_ = length $_;
	}
	@args;
}

my %modules = %{$Module::CoreList::version{5.014}};
my $maxNum = max lengthstr keys %modules;

foreach my $key (sort keys %modules){
	@ARGV = checkArgs @ARGV;
	if(!@ARGV){
		say "No arguments.";
		last;
	}
	chomp($key);
	chomp(my $value = $modules{$key});

	foreach my $temp (@ARGV){
		if($key =~ /(.*($temp).*)/){
			printf "%${maxNum}s\t%s\n", $key, $value;
		}
	}

}

#print Dumper(@ARGV);

 使用时,运用如下方式;

./pModules.pl  [pattern] | all 
 可以输入若干个  pattern ,但只要有一个 /all ,则会输出所有的 package。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iscas2spice spice netlist generation tool -- version 2.2 by Jingye Xu @ VLSI Group, Dept. of ECE, UIC, June, 2008 This tool reads the ISCAS85 benchmark circuit "*.bench" file and translate the file into SPICE netlist using the given technology and the standard cell library. platform: linux x86 sytem Input: ISCAS85 benchmark circuit: *.bench; standard cell library: stdcells.sclb; standard cell models: stdcells.lib; interconnect paramaters: *.int; Output: SPICE netlist: out.sp The whole procedure of the tools can be divided into several steps: 1. Gate replacement: replace the gates that can't be found in the with the gates in the standard cell lib. (break.pl) Output: *.bench, *.bench.bak 2. Generate the GSRC files: generate the GSRC files for the fengshui placer. (gsrcgen.pl) Output: gsrcfile/iscas.* 3. Placement: using the fengshui placement tool to perform the component placement. (fs50) Output: gsrcfile/iscas_fs50.pl 4. Generate ISPD file: tanslate the placement results into ISPD98 format file that can be used as the input of the global router. (gsrc2ispd.pl) Output: gsrcfile/iscas.laby.txt 5. Perform the routing: use the labyrinth global router to perform the routing. (mazeRoute) Output: gsrcfile/output 6. Generate the SPICE netlist: use all the available information to generate the final SPICE netlist. (spicegen.pl) Output: out.sp Usage: iscas2spice.pl Iscas85BenchmarkFile [-C/L/N] options: -C :default value, use the RC model for interconnect -L :use the RLC model for interconnect -N :treat interconnect as short circuit wire This package used the fengshui placement tools and labyrinth global routing tools, for information regarding these two free tools, please vist: http://www.ece.ucsb.edu/~kastner/labyrinth/ http://vlsicad.cs.binghamton.edu/software.html For information regarding this software itself please visit: http://wave.ece.uic.edu/~iscas2spice Many thanks to my advisor Masud H. Chowdhury for his support!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值