我知道,当我们需要use
在软件包名称之后将一些参数传递给关键字时,可以在命令行中将-M
参数传递给它们。
例如:
use feature 'say';
say 'hello!';
可以使用以下命令从命令行调用
>perl -Mfeature=say -e"say 'hello!'"
但是,如果参数是哈希,该怎么办?我可以为以下示例制作单线:
use constant {c1 => 'foo', c2 => 'bar'};
use feature 'say';
say c1, c2; #expected: foobar
这不起作用:
>perl -Mfeature=say -Mconstant={c1,'foo',c2,'bar'} -e"say c1,c2"
Constant name '{c1' has invalid characters at -e line 0.
BEGIN failed--compilation aborted.
都不是:
>perl -Mfeature=say -Mconstant="c1,'foo',c2,'bar'" -e"say c1,c2"
'foo'c2'bar'c2
我知道我可以-Mconstant=foo
在命令行中添加多个,但这仅是一个例子。我这里有一个程序包,可以在导入时获取哈希值,并且试图从命令行调用。
查看perlrun的用法:
perl -Mfeature=say "-Mconstant {c1 => 'foo', c2 => 'bar'}" -e"say c1,c2"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句