来自perl的奇怪`pwd`输出

dig*_*ber 1 unix linux ubuntu perl pwd

我有一个非常简短的perl脚本教程:

#!/usr/bin/perl
print "The date is ",`date`;
print "The date is `date`",".\n";
$directory=`pwd`;
print "\nThe current directory is $directory.";
Run Code Online (Sandbox Code Playgroud)

和输出:

The date is Sat Jul  2 17:04:58 PDT 2011
The date is `date`.

The current directory is total 20
-rwxr-xr-x 1 yan yan 433 2011-07-02 15:58 36
-rwxr-xr-x 1 yan yan 313 2011-07-02 16:29 43
-rwxr-xr-x 1 yan yan 116 2011-07-02 16:51 45
-rwxr-xr-x 1 yan yan 149 2011-07-02 16:53 46
-rwxr-xr-x 1 yan yan 145 2011-07-02 17:02 47
Run Code Online (Sandbox Code Playgroud)

但如果我只是运行pwd我得到:

yan@ubuntu:~/bin/blackperl$ pwd
/home/yan/bin/blackperl
Run Code Online (Sandbox Code Playgroud)

这里有什么合乎逻辑的解释?非常感谢!

too*_*lic 7

我也无法解开这个谜团,但你可以尝试使用Perl Core模块Cwd而不是pwd命令:

use warnings;
use strict;
use Cwd;
my $dir = getcwd();
print "$dir\n";
Run Code Online (Sandbox Code Playgroud)

一个优点是Cwd比便携更便携pwd.

另请参见:Perl中的UNIX"命令"等效项