在我的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”作为文字参数。

10-07 15:04