perl - 如何从相对路径中获取 Perl 程序的绝对路径?

标签 perl relative-path

我需要找到我当前正在运行的 Perl 脚本的完整路径,即

  • 对于 ~/dir/my.pl,我需要它是“/home/user/dir/my.pl”。 $0会给我“~/dir/my.pl”。
  • 对于 ./my.pl 我仍然需要 "/home/user/dir/my.pl"

  • 等谢谢!

    最佳答案

    使用 FindBin模块:

    $ cat /tmp/foo/bar/baz/quux/prog
    #! /usr/bin/perl
    
    use FindBin;
    
    print "$FindBin::Bin/$FindBin::Script\n";
    
    $ PATH=/tmp/foo/bar/baz/quux prog
    /tmp/foo/bar/baz/quux/prog
    
    $ cd /tmp/foo/bar/baz/quux
    
    $ ./prog 
    /tmp/foo/bar/baz/quux/prog
    

    关于perl - 如何从相对路径中获取 Perl 程序的绝对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1033474/

    相关文章:

    Java 工作区和文件路径

    c# - 将相对路径转换为绝对路径

    java - 访问 JAR 资源

    string - 连接字符串

    perl - Catalyst 开发服务器 - 不显示路由和错误

    arrays - perl:计算数组中的唯一元素

    html 到 css 样式表的相对地址不起作用

    javascript - jquery相对路径和绝对路径

    perl - APR::UUID 模块生成的标识符的保证唯一性是什么

    perl - 如何使用 perl Archive::Zip 递归地遍历存档文件?