在不忽略反斜杠的情况下解析命令行参数
Parsing command-line arguments without ignoring backslash
我需要获取 ARGV 的第一个元素并将其保存为我的模板以搜索文件。这个元素包含一个反斜杠 /
但是当我将它保存在一个变量中时,反斜杠消失了:
my $template = $ARGV[0];
print $template;
打印出 GGCC,而第一个参数是 GG\CC。我该如何解决这个问题?
这并不是 perl
的问题,而是您的 shell。
尝试输入:
echo \fish
你会看到输出:
fish
perl
有同样的问题 - 它甚至没有首先看到斜线,因为 shell 正在处理转义行并首先引用。
您唯一可以更改的是调用。在调用中添加一个额外的斜线:
echo \fish
你会得到:
\fish
我需要获取 ARGV 的第一个元素并将其保存为我的模板以搜索文件。这个元素包含一个反斜杠 /
但是当我将它保存在一个变量中时,反斜杠消失了:
my $template = $ARGV[0];
print $template;
打印出 GGCC,而第一个参数是 GG\CC。我该如何解决这个问题?
这并不是 perl
的问题,而是您的 shell。
尝试输入:
echo \fish
你会看到输出:
fish
perl
有同样的问题 - 它甚至没有首先看到斜线,因为 shell 正在处理转义行并首先引用。
您唯一可以更改的是调用。在调用中添加一个额外的斜线:
echo \fish
你会得到:
\fish