2014-02-13 49 views
0

我无法更改perl中的dir。如何在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. 
+0

该目录是否存在?如果没有,'system“mkdir $ path”;'应该可以帮助你。 – DeVadder

回答

6

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

+0

非常感谢马修沃尔顿和阿蒙 – user2932003

1

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

use Time::Piece; 

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