Perl -e 字段替换

标签 perl

我正在使用 perl -e 将十六进制数(523cc261)转换为有意义的日期:

perl -e 'my $t=localtime 0x523cc261; print $t . "\n"' 
Fri Sep 20 21:47:13 2013

但是我无法编写脚本,因为上面的代码需要在提示时提供值。我尝试用变量替换 523cc261 但它不起作用:

b=523cc261
perl -e 'my $t=localtime 0x`echo b`; print $t . "\n"`
Backticks found where operator expected at -e line 1, near "0x`echo b`"
        (Missing operator before `echo b`?)
syntax error at -e line 1, near "0x`echo b`"

我的问题是如何通过脚本中的参数提供十进制值(523cc261)。

最佳答案

最简单的方法是将时间作为参数传递给 Perl 脚本。我也将脚本重写得更加简洁:

% b=523cc261
% perl -E 'say scalar localtime hex $ARGV[0]' $b
Fri Sep 20 14:47:13 2013

关于Perl -e 字段替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19105634/

相关文章:

python - 如何读取 sys.exit() 返回的值并将其存储在变量中

arrays - perl:数组操作的优先级

Python 相当于 Perl 的 URI::Find

linux - redhat 中的 Perl 和 shell 脚本

perl - 如何重新定义 Perl 类方法?

perl - 如何在没有 root 访问权限的情况下在本地安装 CPAN 模块(DynaLoader.pm 第 229 行错误)?

xml - 如何使用 Perl 的 XML::Twig 向子元素添加属性?

perl - 为什么 WWW::Mechanize::Firefox 找不到它的 "new"方法?

perl - 如何从 Perl 中的外部命令中丢弃 STDERR?

linux - 在远程主机上使用非返回脚本管理进程