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 に答える