我一直试图弄清楚如何运行这个例子一段时间,我仍然坚持如何打印日期。以下是我正在研究的例子。
(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.
非常感谢任何帮助。谢谢。
答案 0 :(得分:2)
你已经很好地解释了你做错了什么(使用单引号而不是反引号或qx(...)
)但是可能值得指出你不需要在任何一个中调用外部程序。你的例子中有两个案例。
要获取当前日期,只需在标量上下文中调用localtime
。
print scalar localtime;
有关更复杂的日期和时间处理,请参阅Time::Piece和DateTime。
要获取当前目录,请使用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.";