【发布时间】:2017-06-08 10:47:46
【问题描述】:
我正在尝试使用作为命令行参数传递给我的脚本的使用参数,但是这样做时双引号(“)和单引号(')消失了。 例如在运行以下:
#!usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my $argument_list = join(" ",@ARGV);
print "$argument\n";
运行上述代码后:
perl test1.pl name1 "name2 and name3"
我得到以下输出:
name1 name2 and name3
有没有办法在命令行参数中包含双引号,以便最后一个参数是"name2 and name3" 而不仅仅是name2 and name3?
我曾尝试使用 '\' 来转义双引号 perl test1.pl name1 \"name2 and name3\",但将 "name2 作为单独的参数 and 作为单独的参数并将 name3" 作为另一个参数只会让情况变得更糟。
【问题讨论】:
-
您的代码没有按照发布的方式编译和运行。你声称使用
strict,但是,你有print "$argument\n";,但没有在任何地方声明$argument。最好不要对你正在寻求帮助的人撒谎。