Perl B module

perl工具 开发工具 perl工具 开发工具 windows环境 立即下载

Perl 脚本都是内部编译为语法树,然后根据语法树解析执行每一步。察看一个脚本的语法树用模块B::Concise,简单说明如下:


B::Concise - 遍历语法树,打印每一个执行码(ops)的内容

用法:perl -MO=Concise[,OPTIONS] script


常用OPTIONS:

-basic: 默认模式,打印内存树状结构OPs

-exec: 根据执行顺序打印OPs,可同默认basic作比较

C:\>perl -MO=Concise -e "$a = 43 / 20; print $a"
a  <@> leave[1 ref] vKP/REFC ->(end)
1     <0> enter ->2
2     <;> nextstate(main 1 -e:1) v:{ ->3
5     <2> sassign vKS/2 ->6
3        <$> const[NV 2.15] s ->4
-        <1> ex-rv2sv sKRM*/1 ->5
4           <#> gvsv[*a] s ->5
6     <;> nextstate(main 1 -e:1) v:{ ->7
9     <@> print vK ->a
7        <0> pushmark s ->8
-        <1> ex-rv2sv sK/1 ->9
8           <#> gvsv[*a] s ->9
-e syntax OK

C:\>perl -MO=Concise,-exec -e "$a = 43 / 20; print $a"
1  <0> enter 
2  <;> nextstate(main 1 -e:1) v:{
3  <$> const[NV 2.15] s
4  <#> gvsv[*a] s
5  <2> sassign vKS/2
6  <;> nextstate(main 1 -e:1) v:{
7  <0> pushmark s
8  <#> gvsv[*a] s
9  <@> print vK
a  <@> leave[1 ref] vKP/REFC
-e syntax OK
-terse: 以上都是打印OPs缩略,并不明显,用此参数显示OPs更加明显。用此参数实际等同于perl -MO=Terse ......

C:\>perl -MO=Concise,-terse -e "$a = 43 / 20; print $a"
LISTOP (0x2918118) leave [1] 
    OP (0x291801c) enter 
    COP (0x291813c) nextstate 
    BINOP (0x2918178) sassign 
        SVOP (0x291819c) const [4] NV (0x285a864) 2.15 
        UNOP (0x2918220) null [15] 
            PADOP (0x2918240) gvsv  GV (0x285a814) *a 
    COP (0x291805c) nextstate 
    LISTOP (0x29180b4) print 
        OP (0x2918098) pushmark 
        UNOP (0x29180d8) null [15] 
            PADOP (0x29180f8) gvsv  GV (0x285a814) *a 
-e syntax OK

C:\>perl -MO=Concise,-terse,-exec -e "$a = 43 / 20; print $a"
OP (0x2918274) enter 
COP (0x2918394) nextstate 
SVOP (0x29183f4) const [4] NV (0x285a86c) 2.15 
PADOP (0x2918498) gvsv  GV (0x285a81c) *a 
BINOP (0x29183d0) sassign 
COP (0x29182b4) nextstate 
OP (0x29182f0) pushmark 
PADOP (0x2918350) gvsv  GV (0x285a81c) *a 
LISTOP (0x291830c) print 
LISTOP (0x2918370) leave [1] 
-e syntax OK
-src: 以上都是整体语法树,加此参数可以显示每一行对应编译后的语法树,不过此参数只能对文件起作用,对-e 执行的单行程序不能很好的支持。


对于perl 的一些简写,如果想知道内部是如何处理的,可以反编译语法树,从执行码推导脚本,用B::Deparse模块。

C:\>perl -MO=Deparse -ne "print if /test/" stock.pl
LINE: while (defined($_ = <ARGV>)) {
    print $_ if /test/;
}
-e syntax OK

使用以上的模块,参考OPs的定义,可以帮助更好地了解perl的内部实现。
perl to exe perl to exe, to convert .pl to exe file 立即下载

相关推荐

编译打包exe HBehrens-obj2opengl-aede13e

编译打包exe HBehrens-obj2opengl-aede13e,代码修改说明,运行教程

使用B::Deparse模块对perl代码反汇编

Perl用很多默认操作和习惯用法,如果对某些代码不确定,perl编译器的真实理解方式,可以用Deparse模块反汇编看一下。 比如下面代码: while(&lt;STDIN&gt;){ print "hello\n"; } perl编译器会默认对&lt;STDIN&gt;加上defined关键词,来保证&lt;STDIN&gt;接收的不是空字符之类的代表假的布尔值。我们可以用反汇编手段...

weixin_33928467的博客 297

perl2exe转换工具

perl2exe,转换工具,需要的抖动的

perl-全面编译(转)

 资迅 论坛 教程 杂志 SNS 搜索  -Linux教程 Linux Linux编程 C/C++编程 Python编程 Perl编程 PHP编程 shell 编程技术 kernel html技术 zope java/jsp discuz Linux宝库 Linux教程 Linux Linux编程 Perl编程   06/14 2008 Perl语言全面编译 分类:Perl编程 | Linux  ...

深未来技术 668

最简单最齐全的反编译工具

最简单最齐全的反编译工具Android工程 反编译源码,资源和查看源码

反编译工具,支持4种语言

反编译工具,支持4种语言,装上一个插件就可以编辑4种源代码,相当强大

perl脚本生成exe可执行脚本(perl生成java实体类为例)

准备工作 perl自行安装(一定要安装dbi模块) 参考链接 perl官网 perl:DBI模块安装与卸载 windows 下使用make命令,编译代码 好戏开始 perl脚本编译成exe 一般有三种方法: 1. 使用 perl2exe 工具(需要购买,当然也有破解版或绿色版,不过网上只找到5.0版本的,而我的是5.12版本,版本太低所以不能使用) 2. 使用 ActiveState 公司的 Pe...

qq_25073261的博客 1902

一款很强大的反编译工具

一款很强大的反编译软件,对其exe,dll等一些文件进行解析.它可以更好的反汇编和更有深层代码分析。可以快速到达指定的代码位置.

ngx_http_perl_module模块概述

本文介绍了在 Nginx 中集成 Perl 模块的相关问题与配置方法。首先,指出了实验性模块的不稳定性,并建议在编译 Perl 时启用 usemultiplicity 或 usethreads 以支持 Nginx 重载配置时重新加载 Perl 模块,同时需重新编译所有 XS 模块。此外,提及了内存增长和阻塞风险的问题,建议使用 live upgrade 流程处理内存增长,并避免执行耗时较长的 Perl 操作。 随后,提供了 Nginx 主配置和 Perl 模块文件的示例,展示了如何加载 Perl 模块、定义

hello.reader 1320

Unity URP管线下的Highlight Plus插件,从导入到实现物体高亮的保姆级避坑指南

本文详细解析了在Unity URP管线中使用Highlight Plus插件实现物体高亮的完整流程与常见问题解决方案。从URP环境配置、插件导入避坑到相机设置优化,提供了一套完整的保姆级指南,帮助开发者高效解决高亮效果不显示等典型问题,并包含移动端性能优化与复杂场景管理的高级技巧。

weixin_27379781的博客 408

大整数因数分解工具——yafu

可以将大整数放在一个新建文件中——data.txt,最后面一定要换行,不然会出现eof;done processing batchfile,运行命令。2.点击设置——系统——系统信息——高级系统设置——环境变量——点击PATH(上下都可以)——新建 添加yafu-x64.exe 所在路径——点击确定。,如果整数数过长,会出现错误mismatched parens;1.找到yafu-x64.exe 所在的文件路径。如果出现以下图像,说明配置成功。3.打开cmd,输入。

l2ohvef的博客 6156

手把手教你Nginx常用模块详解之ngx_http_perl_module(九)

r-> log_error(errno,message)将指定的消息写入error_log。为了确保客户端请求主体在内存中,其大小应该由client_max_body_size来限制,并且应该使用client_body_buffer_size来设置足够的缓冲区大小。$ r-> request_body_file返回文件的名称与客户端请求主体。$ r-> sleep(毫秒,处理程序)设置指定的处理程序并停止指定时间的请求处理。$ r-> header_in(field)返回指定的客户端请求头字段的值。....

菜鸟路上的小白 1714

Nvidia Jetson AGX Orin 如何进入 Recovery Mode(刷机注意事项)

Jetson Orin 如何进入Recovery mode + 刷机注意事项

Pandako's Blog 1万+

各种手动安装Win32 Perl module的方法

> HOW TO INSTALL:> - IF you are using the core distribution of Win32 Perl:> a) Copy the ADMINMISC.PM file into the directory> perl/lib/site/win32> b) Rena

volts_j的专栏 1385

具身智能:从理论突破到场景落地的全解析

具身智能(Embodied Intelligence)是人工智能与机器人学深度融合的前沿领域,其核心在于通过物理实体与环境的动态交互实现智能行为。区别于传统 AI 的 “离身性”(如语音助手仅依赖数据输入),具身智能强调 “智能体通过身体感知世界并反作用于环境”,形成 “感知 - 决策 - 行动” 的闭环。例如,能自主避障的配送机器人、可精准抓取异形物体的机械臂,均通过传感器网络与环境实时互动,在试错中优化行为策略。

LeeKumaの技术Note 2681

26届数字IC秋招笔试面试全攻略-ASIC设计流程全解析

本文系统介绍了ASIC芯片设计的全流程。前端设计包括规格制定、架构设计、RTL编码和功能验证;后端设计完成物理实现,涵盖布局规划、时钟树综合、布线和物理验证等步骤;Tapeout阶段完成制造数据准备和交付。文章详细说明了各阶段的关键任务、验证方法和设计指标,并列举了典型工具链,为ASIC设计提供了全面的流程指导。通过严格的检查清单和验证步骤,确保芯片设计符合制造要求和性能目标。

2301_79143213的博客 365

nothing provides module(perl:5.26) needed by module

模块依赖问题 问题 1: conflicting requests - nothing provides module(perl:5.26) needed by module perl-DBD-SQLite:1.58:8010020191114033549:073fa5fe-0.x86_64 问题 2: conflicting requests - nothing provides module(perl:5.26) needed by module perl-DBI:1.641:80100...

u011697852的专栏 1万+

Python数据可视化 Pyecharts 制作 Map 地图

大家好,我是Mr数据杨。想象一下,作为一名军师,如诸葛亮或郭嘉,'Map’就如同那战争的沙盘,兵马行动的轨迹,都需要准确的地图作为基础。‘基本设置’,就如同摆设这张战争沙盘,规定棋子的起始位置。‘数据配置选项’和’地图数据项’,就好比是军师们手中的情报,了解各路诸侯的兵力、粮草、地形等重要信息,以便于他们更好地布局。‘Demo’则代表着练兵之地,军师们可以在此基于已有数据,试验各种战术。

Mr数据杨 4万+

PHP install perl module

Today I install the perl module,for php5. but is error.I thing is the php_perl.c not working. I google find the answer. then , I find the answer ...

chiqu8683的博客 137

QT使用libssh2库通过密匙实现sftp协议上传文件

qt下使用libssh2通过密匙连接sftp服务器端

小米的修行之路 940

信号处理算法:自适应滤波_(8).自适应陷波器

自适应陷波器是一种强大的工具,广泛应用于电力系统、通信系统和生物医学信号处理等领域。通过自适应调整滤波器的参数,自适应陷波器可以在特定频率处形成陷波,从而有效地抑制噪声或干扰信号。常见的自适应算法包括LMS和RLS,它们各有优缺点,可以根据实际需求选择合适的算法。

2401_87715305的博客 1371

Perl module CPAN

From:http://blog.sina.com.cn/s/blog_49432699010149yz.htmlCPAN method perl -MCPAN -e shell (to get an interac...

cizongzhic79075的博客 167

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

perl的一些难以概念的概念

1.为什么perl的库有的是.pl的有的是.pm的? 答:.pl是一种比较老的形式的库的形式,.pm是一种新的形式。在导入这些库的时候,.pl只能用require导入,而.pm可以用require和use两种方式导入。 2.require 和use又什么区别? 答:require和use的共同目的都是用来装载库的,他们有点像c语言的动态装载和静态链接之间的关系,require动态装...

banyang1325的博客 221

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

freeswitch与perl 语言相关

本文来自csdn lidp http://blog.youkuaiyun.com/perfectpdl,转载注明出处,谢谢。 我建了一个 Freeswitch 内核研究 交流群, 45211986, 欢迎加入, 另外,提供基于SIP的通信服务器及客户端解决方案, 承接 sip/ims 视频客户端开发,支持接入sip软交换,ims核心网,支持 语音,视频,即时通信功能,视频格式支持 h2

RTC hacker 2510

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: [JavaScript]ECMA-262 深入解析
下一篇: Perl object/bless
Bai_Yuanyong
博客等级 码龄24年 46粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值