【问题标题】:Perl touch a directoryPerl 触摸目录
【发布时间】:2015-11-05 15:36:13
【问题描述】:

我是 perl 新手。下面是我使用 perl 触摸目录的代码

#!/usr/bin/perl

# Populate the hashMap
# keys          -->  directories to clean
# attributes    -->  days to keep.



print "<-------------------------------------------------------->";
print " Touching of folders Started   ";
touch `/tmp/dir1`;
touch `/tmp/dir2`;
print " Touching of folders Ended   ";
print "<-------------------------------------------------------->";

运行脚本时出现以下语法错误。请帮忙。

$ ./FeedServerHscript.sh
Backticks found where operator expected at /tmp/eCAS_Housekeep/Ecas_54.pl line 11, near "touch `/tmp/dir1`"
        (Do you need to predeclare touch?)
Backticks found where operator expected at /tmp/eCAS_Housekeep/Ecas_54.pl line 12, near "touch `/tmp/dir2`"
        (Do you need to predeclare touch?)
syntax error at /tmp/eCAS_Housekeep/Ecas_54.pl line 11, near "touch `/tmp/dir1`"
Execution of /tmp/eCAS_Housekeep/Ecas_54.pl aborted due to compilation errors.

【问题讨论】:

标签: perl


【解决方案1】:

如果您不想在变量中返回值,请使用system 命令而不是反引号。

print "<-------------------------------------------------------->";
print " Touching of folders Started   ";
system("touch /tmp/dir1");
system("touch /tmp/dir2");
print " Touching of folders Ended   ";
print "<-------------------------------------------------------->";

像这样使用反引号:

my $dir2 = `touch /tmp/dir1`;
my $dir2 = `touch /tmp/dir2`;

有关systembacktick 的更多信息,请参阅此内容: https://stackoverflow.com/a/800105/4248931

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-21
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多