gpt4 book ai didi

Linux-Perl : Printing the content of the script I am executing

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:43:57 26 4
gpt4 key购买 nike

是否可以打印我正在执行的脚本的全部内容?

由于脚本内部会发生很多事情,比如我将在运行时调用的调用 perl 模块(需要“/dir/file”;),我在数组中执行的打印行(foreach(@array ) {打印 "$_\n";}).

为什么我需要这个?研究我正在制作的脚本生成,尤其是在发生错误时。第 2000 行发生错误(即使我只有 1000 行脚本)。

最佳答案

可能有更好的调试脚本的方法(perl 调试器,使用 Carp::Always 来获取带有任何错误和警告的堆栈跟踪),但是至少有 两个 获取运行脚本源码的三种机制。

  1. 由于 $0 包含 perl 正在执行的文件的名称,您可以从中读取。

    open my $fh, '<', $0;
    my @this_script = <$fh>;
    close $fh;
  2. 如果脚本在其源代码中有 __DATA____END__ 标记,那么 Perl 也会设置 DATA 文件句柄。最初,DATA 文件句柄指向之后的文本__DATA____END__ 标记,但它实际上是对整个源文件打开的,因此您可以seek 到该文件句柄的开头并访问整个脚本。

    seek DATA, 0, 0;
    my @this_script = <DATA>;
  3. HT Grinnz:任何 Perl 源文件中的标记 __FILE__ 指的是包含该标记的文件的名称

    open my $fh, '<', __FILE__;
    my @this_file = <$fh>;
    close $fh;

关于Linux-Perl : Printing the content of the script I am executing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53367020/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com