首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何获取创建Perl子例程引用的文件和行号?

要获取创建Perl子例程引用的文件和行号,可以使用caller函数。caller函数返回一个包含调用子例程的文件名、行号和子例程名的列表。

以下是一个示例代码:

代码语言:perl
复制
sub my_subroutine {
    my ($package, $filename, $line) = caller;
    print "This subroutine was called from file $filename at line $line\n";
}

my_subroutine();

在这个示例中,caller函数返回一个包含调用my_subroutine的文件名、行号和子例程名的列表。然后,我们将这些值分配给$package$filename$line变量。最后,我们打印出调用子例程的文件名和行号。

需要注意的是,caller函数只返回调用它的一级上级的信息。如果需要更多级别的信息,可以使用caller函数的$i参数来获取。

在实际开发中,caller函数可以用于调试、错误处理和日志记录等方面。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在 Go 函数中获取调用者函数名、文件名、行号...

如果让我们用 Go 设计一个Log Facade,就需要我们自己在门面里获取调用者函数名、文件位置了,那么在Go里面怎么实现这个功能呢?...) Caller 函数会报告当前 Go 程序调用栈所执行函数文件行号信息。...//获取是 CallerA函数调用者调用栈 pc1, file1, lineNo1, ok1 := runtime.Caller(1) } 函数返回值为调用栈标识符、带路径完整文件名...、该调用在文件行号。...获取调用者函数名 runtime.Caller 返回值中第一个返回值是一个调用栈标识,通过它我们能拿到调用栈函数信息 *runtime.Func,再进一步获取到调用者函数名字,这里面会用到函数方法如下

6.3K20

python 如何删除文件夹下所有文件文件夹?

前言 删除文件夹下所有的文件,以及文件下所有的文件,把这个文件夹全部删除。...283340479 # blog:https://www.cnblogs.com/yoyoketang/ def delete_dir_file(dir_path): """ 递归删除文件夹下文件文件夹里文件.../data') 上面代码删除时候,如果想保留我们文件夹以及文件夹,仅仅只删除文件,可以去掉这句 # 递归删除空文件夹 if os.path.exists(dir_path):...blog:https://www.cnblogs.com/yoyoketang/ def delete_dir2(dir_path): # os.walk会得到dir_path下各个后代文件其中文件三元组列表...283340479 # blog:https://www.cnblogs.com/yoyoketang/ def delete_dir_file(dir_path): """ 递归删除文件夹下文件文件夹里文件

25010

Perl进阶》——读书笔记(更新至14章)

6.4 数据编组 第7章 对子例程引用 7.1 引用例程 7.2 闭包 第8章 文件句柄引用 8.1 typeglob 8.2 标量 8.3 指向字符串 8.4 IO::Handle 8.5...格式间相互转换方法 第7章 对子例程引用 7.1 引用例程 与数组散列引用一样,也是用\进行引用,比如: my $ref_to_greeter = \&skipper_greets; #...注意:类似Perl动态语言无法自动将“尾递归”转为循环,因为再一次调用例程之前,例程定义可能改变。...这个模块不但可以自动创建发行版,而且在我们修改发行版中文件后,它还知道如何更新发行包。...6.4 数据编组 第7章 对子例程引用 7.1 引用例程 7.2 闭包 第8章 文件句柄引用 8.1 typeglob 8.2 标量 8.3 指向字符串 8.4 IO::Handle 8.5

4.7K50

简述如何使用Androidstudio对文件进行保存获取文件数据

在 Android Studio 中,可以使用以下方法对文件进行保存获取文件数据: 保存文件创建一个 File 对象,指定要保存文件路径和文件名。...使用 FileOutputStream 类创建一个文件输出流对象。 将需要保存数据写入文件输出流中。 关闭文件输出流。...: 创建一个 File 对象,指定要读取文件路径和文件名。...使用 FileInputStream 类创建一个文件输入流对象。 创建一个字节数组,用于存储从文件中读取数据。 使用文件输入流 read() 方法读取文件数据,并将其存储到字节数组中。...这些是在 Android Studio 中保存获取文件数据基本步骤。

33010

Perl项目中面向对象、继承默认加载正则表达式使用方法

Perl面向对象 类只是一个简单包。 可以将包用作类,并将包中函数用作类方法。 Perl包提供独立名称空间,因此不同包方法变量名不会冲突。 Perl文件后缀是.pm。...接下来,我们创建一个Person类: 包装人员; 类代码范围为脚本文件最后一行或下一个package关键字。...面向对象基本概念 面向对象有许多基本概念。这里我们收到三个:对象、类方法。 对象:对象是对类中数据项引用 Class:Class是一个Perl包,其中包含提供对象方法类。...Perl中可以使用任何名称。 可以使用各种Perl变量作为Perl对象。在大多数情况下,我们将使用引用数组或散列。 接下来,我们使用Perl哈希引用为Person类创建一个构造函数。...创建对象时,需要提供构造函数,这是一个返回对象引用例程

1.8K40

如何使用PQ获取目录下所有文件名(不含文件子目录)

今天想把之前发布Power BI示例文件文件夹做一个表出来,只获取该目录下所有文件名,并不包含其中各种文件子目录。 ? 因为每个文件夹中都包含多个文件,甚至还有文件夹: ?...所以如果直接用“从文件获取数据”方式,PowerQuery会使用Folder.Files函数: ? Folder.Files会将所选目录下所有文件路径罗列出来: ?...以下是Folder.Contents说明: ? 这个就比较好了。它只返回所选目录下文件夹名和文件名,并不会返回文件夹下文件。...这样我们就得到了根目录下所有文件夹名,和文件名。尤其是,空文件夹这里也出现了。 接下来就是从列表中只返回文件名。...再筛选TRUE行: ? 意思是查看属性,然后筛选那些是“目录”行。 这样,就将该目录下所有文件获取到了。

6.9K20

C#如何遍历某个文件夹中所有文件文件夹(循环递归遍历多层),得到所有的文件名,存储在数组列表中

首先是有一个已知路径,现在要遍历该路径下所有文件文件夹,因此定义了一个列表,用于存放遍历到文件名。...递归遍历如下:将已知路径列表数组作为参数传递, public void Director(string dir,List list) { DirectoryInfo d...d.GetDirectories();//文件夹 foreach (FileInfo f in files) { list.Add(f.Name);//添加文件名到列表中...} //获取文件夹内文件列表,递归遍历 foreach (DirectoryInfo dd in directs) {...Director(dd.FullName, list); } } 这样就得到了一个列表,其中存储了所有的文件名,如果要对某一个文件进行操作,可以循环查找: foreach (string

13.8K40

五、eclipse如何创建一个ftl(FreeMarker)文件设置ftl文件显示风格(ftl文件高亮显示)

1、首先需要在eclipse中去下载一个FreeMarker插件https://blog.csdn.net/IT_CREATE/article/details/86682538 2、创建ftl文件(有多种方式...,我会分别介绍) 2.1 利用file来创建,我们new个 file文件 写上页面的名字,后缀名改为ftl 这样就创建好了,不过里面没有任何内容,我们需要自己添加一些基本信息 添加一些html基本样式...,如: 2.2 利用 html来创建,我们new个 html文件 在搜索框输入html,选择HTML File,点击Next 为文件取一个名字,点击next 选择html5 这样就创建好了一个...html文件 然后选中你创建HTML文件,按下F2,对文件进行重命名,修改后缀名为ftl,然后一直点击ok 这样就建好了ftl文件,这样就自带了html那些基本信息。...2、设置 ftl文件显示风格 因为ftl默认显示风格是全黑,所以我们需要一些高亮显示 1)选中你ftl文件,点击右键,选择Open With–>Other 2)然后弹出来一个选择框,我们勾选Use

2.9K10

Vim给文件行号,这通惊为天人操作没sei了!文末天书慎点

引言 一般 Vim 使用 :set number 命令,在编辑器显示行号。 本文展示了如何行号插入到正文中,或者只插入到段落中。...此外,还提供了打印行号选项(Vim 可以打印带有数字行,并且不需要文件有数字)。 ?....") - line("'<") + 1) 上面的示例格式字符串是“%d”。它插入一个左对齐数字,后跟一个句点,一个制表符TAB。选定范围内每一行都进行了编号。...nl -ba nl 指令有许多选项来控制对哪些行进行编号,以及如何对数字进行格式化。 要给一部分内容添加行号,请指定哪些行应该用范围编号。..." 创建一个菜单选项,用于在文件内调用 Perl 。 " 在按下回车键之前,剪辑脚本 -e 选项。 " 下面这行东东,在shell下一样用。

2.5K20

软件架构编年史:编程语言演化

◐ 20世纪60年代 – 结构化编程 Algol ~1958 结构化编程语言出现了,带来了代码块、控制结构(if/then/else、case、for、while、do…) 例程。...这样我们才能创建一些有趣代码流,而更重要是,我们可以划分代码质量并重用它们了,尽管还有一些限制,例如例程只能作用于同样全局变量。这是重用思想第一次变为现实。...这时我们终于拥有了: 过程:一组不返回数据指令; 函数:一组返回数据指令; 数据结构:记录,关联数组类似; 模块:可以在其它代码文件中导入代码文件。...伴随着这些改进,我们有了更好重用性,因为例程(过程或函数)可以对不同数据执行同样逻辑。我们还可以通过将关联数据划分在一起编程复杂数据接口来对领域概念建模。...最后,我们迈出了解耦模块化第一步,我们可以创建在其他代码文件中重用代码,还可以创建事件来分离调用方代码执行逻辑。

93930

0元搭建卡盟主站_哪个卡盟平台好

’; // 声明命名空间 use Obs\ObsClient; // 创建ObsClient实例 获取Website配置 功能说明 获取Website配置。...ObsClient实例 示例程序 OBS PHP SDK提供了丰富例程序,方便用户参考或直接使用。...您可以从OBS PHP SDK开发包中获取例程序,如eSDK_Storage_OBS__PHP.zip,解压后eSDK_Storage_OBS__PHP/examp 下载对象 功能说明 下载指定桶中对象...ObsClient->getObjectAsync(array 下载对象 对象下载简介 文本下载 流式下载 文件下载 范围下载 限定条件下载 重写响应头 获取自定义元数据 下载归档存储对象 图片处理...此外,它在Python、Perl、RubyLua社区中受欢迎程度也引起了关 来自:其他 /v1.0/moderation/image。

1.6K30

使用管理门户SQL接口(一)

使用管理门户SQL接口(一)本章介绍如何在InterSystems IRIS®数据平台管理门户上执行SQL操作。 管理门户界面使用动态SQL,这意味着在运行时准备执行查询。...一个不指定聚合函数不选择行查询总是显示Row count: 0并且不返回结果,即使该查询只指定不引用FROM子句表表达式查询。...带no FROM子句查询总是显示行数:1,并返回表达式、查询聚合函数结果。性能:以运行时间(以秒为单位)、全局引用总数、执行命令总数磁盘读取延迟(以毫秒为单位)来衡量。...成功执行还提供了一个打印链接显示打印查询窗口,它给你选择打印或导出到一个文件中查询文本/或查询结果集。...“导出到文件”复选框显示指定导出文件格式(xml、hdml、pdf、txt、csv)导出文件路径名选项。

8.3K10

这些 grep 常用技巧你都会吗?

,grep是一种在文本文件中搜索字符串命令行工具。...例如: grep -i hello myfile.txt 显示行号:使用 -n 选项可以显示匹配行行号。...grep 使用 Perl 正则表达式 使用 -P 选项可以让grep使用Perl正则表达式而不是基本正则表达式。Perl正则表达式更强大,可以支持更多特性,例如非贪婪匹配后向引用。...例如: grep -P '\d{3}-\d{2}-\d{4}' myfile.txt 这个例子使用了Perl正则表达式,在文本文件中搜索包含美国社会保险号码行。...正则表达式 \d{3}-\d{2}-\d{4} 表示一个三位数,一个短横线,两个两位数一个短横线,组成了一个美国社会保险号码格式。 以下是一些常用Perl正则表达式案例: 匹配任何字符:.

1.3K40

wxPython 入门教程.

更有趣事:初步项目组织器 无论如何,言归正传,这里向您展示一个程序,它事实上做一些值得做事情。这个程序让您创建一个称之为项目的文本文件列表。您可以编辑保存它们。...清单 2 中我没有列出行号,因为很明显无论如何您都要月阅读该代码。...一旦有构造了窗口,接下来我们就可以来看程序实际代码。首先,在方法 __init__ 后有两个用于载入保存项目文件方法。在那可以看到 Python 如何用 open 等等来处理文件 I/O。...注意,事实上, 关闭 文件是一种轻松事 – 正如它所发生那样,对于 Python 来讲,文件句柄仅仅是内存管理对象,且该对象由计数器引用。...当该引用变为无效时,Python 知道,并会清除它,这时文件会自动关闭。也有不能完全信任情形(文件不能自动关闭),例如,您将再次打开已写文件,并读它。这时,您要明确地关闭它。

1.1K20

S7-200 smart做一个电机控制库

如何将 Micro/WIN 文件导入到 Micro/WIN SMART 中 1. 打开S7-200 库文件 选择要导入文件,并将其放在程序编辑器子程序中。...设置指令库名称和文件路径 b."组件"(Components) 节点:选择项目中哪些例程要作为指令包括在库中。 要包括例程,请在左侧列表中选择例程,然后单击"添加"(Add) 按钮。...要删除例程,请选择右侧例程,然后单击"删除"(Remove) 按钮。 不能直接添加中断例程;但如果子例程引用了中断例程,STEP 7 Micro/WIN SMART 会自动包含该中断例程。...图7.创建库完成 确保您在"选项"(Options) 对话框"项目"(Project) 节点中配置用户库文件夹与您在"名称路径"(Name and Path) 节点中使用文件夹为同一文件夹。...这个项目是包含库例程代码项目,而不是调用库指令项目。 3.进行必要更改。

4.8K20

【天枢系列 01】Linux行数统计:命令对决,谁才是王者?

grep -c '^' filename 1.3 sed 命令 sed 命令主要用于对文件进行文本替换转换操作,但也可以用来统计行数。 $= 表示输出最后一行行号,从而实现对整个文件行数统计。...1.5 Perl 命令 Perl 是一种功能强大脚本语言,在 Linux 中也可以用来进行文件处理统计。 $....sed '行号a\插入文本' 文件名 4.打印操作 这个命令将文件内容逐行打印出来,-n 选项用于禁止默认打印行为。...自定义函数:awk 允许用户定义自己函数,并且可以在 awk 脚本中调用这些函数来完成特定任务。 5.3 内置变量 awk 提供了许多内置变量,用于在脚本中引用当前处理行、字段等信息。...文件权限: 如果要执行Perl脚本位于受限制目录中,或者是其他用户创建,确保你有执行该脚本权限。在执行Perl脚本时,需要注意文件权限设置。

16310

ABAP 模块化编程概念详解

简化程序维护 方便程序调试 样例 获取每月最后一天(函数) 获取当前时间(函数) 模块化编程内容 函数 例程 宏 类 参数 用于在程序模块之间交换数据 定义模块化单元时候就确定了可以使用哪些参数...形参实参 形参实参: 形参(formal parameters): 例程定义期间用FORM语句定义参数 实参(actual parameters): 例程调用期间用PERFORM语句指定参数...参数传递方式 参数传递: 将主程序变量传递给例程形式参数 传递类型: 值传: 例程中参数变量改变,不影响外部程序实际变量引用传: 若例程参数变量值发生了改变...: 在主程序中定义变量 这些变量在整个主程序调用每个子例程中均可见(可进行处理) 局部变量: 在例程中定义变量称作局部变量, 这些变量只存在于相关例程中(与形式参数相同),只能在例程中使用...引用传 B:引用传(以下用最多) 若例程参数变量值发生了改变,那么,传递程序实际变量值也发生改变 DATA : A TYPE I VALUE 1 , B TYPE I VALUE

1.5K21
领券