2014-02-13 76 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');