0

我无法更改 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.
4

2 回答 2

6

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

于 2014-02-13T13:30:49.127 回答
1

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

use Time::Piece;

$dir = localtime->strftime('%d%b%Y');
于 2014-02-13T15:24:39.803 回答