如何更改perl中的目录?

时间:2014-02-13 13:25:52

标签: perl chdir

我无法更改perl中的目录。

#!/usr/bin/perl
use strict;

my $dir=`date +%d%b%Y`;
#the output of $dir is 13Feb2014 that directory is already inside "/mnt/Recordings/Inbound/Kinrep/" 

my $path = "/mnt/Recordings/Inbound/Kinrep/$dir";        
chdir($path) or die "Cant chdir to $path $!";

每当我执行我的程序时,我都无法更改我遇到错误的目录。

Cant chdir to /mnt/Recordings/Inbound/Kinrep/13Feb2014
 No such file or directory at Ftp_transfer_197.pl line 17.

2 个答案:

答案 0 :(得分:6)

chomp $dir;将删除反引号中的命令附加到其输出的换行符。目录名实际上包含换行符的情况非常罕见,尽管在许多文件系统中都可以。

答案 1 :(得分:1)

您有一个已被接受的解决方案。但我想指出,这是你使用外部程序做一些你可以在Perl中做得非常好的事情的副作用。有很多方法可以做你想要的。最简单的可能是使用(标准)Time::Piece模块。

use Time::Piece;

$dir = localtime->strftime('%d%b%Y');