获取perl脚本的错误输出。

时间:2015-06-26 06:41:46

标签: perl windows-8.1

我一直试图弄清楚如何运行这个例子一段时间,我仍然坚持如何打印日期。以下是我正在研究的例子。

(The Script for Unix/Linux)
# Backquotes and command substitution
1   print "The date is ", 'date';      # Windows users: 'date /T'
2   print "The date is 'date'", ".\n"; # Backquotes treated literally
3   $directory='pwd';                  # Windows users: 'cd'
4   print "\nThe current directory is $directory.";

(Output)
1   The date is Mon Jun 25 17:27:49 PDT 2007.
2   The date is 'date'.
4   The current directory is /home/jody/ellie/perl.

这是我的工作和输出。

print "The date is ", 'date /T';
print "The date is 'date'", ".\n"; 
$directory='cd';
print "\nThe current directory is $directory.";  

(Output)
The date is date /TThe date is 'date'.
The current directory is cd. 

非常感谢任何帮助。谢谢。

2 个答案:

答案 0 :(得分:2)

你已经很好地解释了你做错了什么(使用单引号而不是反引号或qx(...))但是可能值得指出你不需要在任何一个中调用外部程序。你的例子中有两个案例。

要获取当前日期,只需在标量上下文中调用localtime

print scalar localtime;

有关更复杂的日期和时间处理,请参阅Time::PieceDateTime

要获取当前目录,请使用Cwd

use Cwd;

print getcwd;

出于两个原因,不运行不必要的外部程序是一个好主意。首先,它使您的代码更具可移植性,其次它更有效(外部程序在新的shell环境中运行 - 并且启动其中一个是相对昂贵的操作)。

答案 1 :(得分:1)

你必须使用反引号而不是单引号:

print "The date is ", `date /T`;
print "The date is ", `date`, ".\n"; 
$directory=`cd`;
print "\nThe current directory is $directory.";