在perl中使用变量作为目录名

时间:2014-09-26 13:35:00

标签: perl variables directory

我使用用户输入变量作为我的初始目录名,但在尝试展开目录并创建子文件夹时,利用该变量会导致路径出现问题。

#!/usr/bin/perl
use strict;
use warnings;

print "What would you like to name your directory?\n"; 
chomp( my $directory = <STDIN> );

mkdir $directory, 0755;
mkdir $directory/data, 0755; ##<----<<Error begins here##
mkdir $directory/data/image, 0755;
mkdir $directory/data/cache, 0755;

2 个答案:

答案 0 :(得分:4)

Perl中的未加引号/表示除法或正则表达式匹配。引用它,如果它是字符串的一部分:

mkdir "$directory/data", 0755;

答案 1 :(得分:3)

或尝试

use File::Path qw/ make_path /;

make_path( "${directory}/data/image", "${directory}/data/cache" );

它将为您创建中间目录。

您可能还想查看Path::TinyPath::Class模块,这些模块具有更好的OO接口以进行文件操作。