1

可能重复:
Getopt::Long 将带有空格的字符串放入变量中

假设我有以下 Perl 脚本:

use 5.010;
use strict;
use warnings;
use Getopt::Std; 
use vars qw($opt_i $opt_o $opt_m); 
&getopts('i:o:m:'); 

say $opt_m

如果我调用这个脚本

perl script.pl -i text -o string -m hello how are you, world?

我没有得到“你好,世界,你好吗?” 在$opt_m. 如何捕获由空格分隔的字符串作为脚本的开关参数之一?

4

2 回答 2

4

您正在尝试构建字符串

hello how are you, world?

因此,您必须使用构建该字符串的字符串文字。字符串文字的语法会因 shell 而异,但您可能可以使用以下任一方法构建该字符串:

hello\ how\ are\ you,\ world\?
'hello how are you, world?'
于 2012-09-14T21:29:49.013 回答
4

您必须转义字符串的空格:

hello\ how\ are\ you,\ world\?
于 2012-09-14T21:27:47.530 回答