在我的Perl程序中,我试图使用system
运行另一个用C编写的命令。该命令需要几个参数:一个字符串,一个浮点数,两个整数,一对浮点数和另一个字符串。我正在运行
my $arg1="electron";
my $arg2=0.511;
# more definitions
system("./fermions $arg1 $arg2 $arg3 $arg4 " .
"$arg5 $arg6 \"string\" > outfile.out");
我需要将
$arg5
更改为几个不同的float值。我通过设置$arg5="1.0e5"
使其工作,然后在for循环中运行if语句来将值更改为字符串。我希望能够像漂浮一样做到这一点,并尝试system("./fermions $arg1 $arg2 $arg3 $arg4 " .
"%e $arg6 \"string\" >outfile.out",
$arg5);
但这没有用。还有另一种选择,还是我的if语句选项是唯一的?
最佳答案
如果要使用printf表示法(如“%e”),则需要使用内置的Perl sprintf
。否则,您最终只会传递“%e”作为文字参数。