【问题标题】:can someone tell what this code snippet does有人能说出这段代码片段的作用吗
【发布时间】:2016-03-21 09:08:25
【问题描述】:

我试图理解下面提到的代码 sn-p,目前我被困在第 3 行,经过大量挖掘后,我知道 $MYPERL 是定义/定位 perl 二进制文件的位置,而 $PERLDB 是 perl调试器 i,e -d:ptkdb 基本上这是一个 perl 脚本,以及一些编写此脚本的人如何将其包装以使用最新的 perl 版本。谁能告诉我如何更改 MYPERL 变量值 /home/Desktop/goudar/perl/ 并执行脚本的其余部分?

#!/bin/sh
# -*- cperl -*-
exec $MYPERL -x $PERLDB -wS $0 ${1+"$@"}
#!perl
#line 6

### perl 
use Cwd;
use Data::Dumper;
use List::MoreUtils qw/ uniq /;
use JSON;
use Mojo::JSON;

#rest of the code go here#

【问题讨论】:

  • perlrun里都有解释
  • @Borodin 你是从使用它时知道的,还是你去打猎的?我以前从未完全阅读过该页面。
  • @simbabque:我强调每年至少阅读一次所有文档。你会惊讶于你能找到什么!

标签: linux perl shell variables environment


【解决方案1】:

谁能说出这段代码 sn-p 做了什么

它使用 env var MYPERL 指定的 Perl 解释器执行嵌入的 Perl 脚本。 env var PERLDB(如果有)中指定的选项被传递给解释器。全局启用警告。

如何更改 MYPERL 变量值 /home/Desktop/goudar/perl/ 并执行脚本的其余部分

如果启动脚本的进程是基于 bourne 的,那么

export MYPERL=/home/Desktop/goudar/perl/

也就是说,我不知道您为什么要将该值分配给 MYPERL 环境变量,因为脚本希望它是 Perl 解释器的路径。

【讨论】:

    猜你喜欢
    • 2022-12-16
    • 1970-01-01
    • 2015-09-20
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 2021-06-23
    相关资源
    最近更新 更多