如何使 Perl 在特定目录中生成输出文件

How to make Perl Generate Output files in a specific directory

有谁知道如何使用 perl 自动生成输出文件?我是运行这样在命令行输入:

<<< 下一个(30659918)

30659947

但不是输出“30659947”在命令 window 中,我正在寻找一个可以生成输出文件的快速命令(例如给定目录中的 Perl_command1.out ) 改为使用字符“30659947”。有谁知道如何做到这一点? (我为什么要这样做是因为当我有更大的 300k+ 数字输入时,我没有命令 window)

我使用的 perl 命令是:

perl -Mntheory=:all -E "说 next_prime('30659918')

30659947

或脚本文件:perlscript.pl

#!/usr/bin/env perl
use warnings;
use strict;
use feature 'say';
use ntheory ":all";

say next_prime('30659918')

您可以使用运算符从命令行重定向输出。另一种方法是将标准输出重定向到 perl 脚本本身的文件。

#!/usr/bin/env perl
use warnings;
use strict;
use feature 'say';
use ntheory ":all";

# open filehandle log.txt
open (my $LOG, '>>', 'log.txt');
# select new filehandle
select $LOG;

say next_prime('30659918');

使用输出重定向。

perl -Mntheory=:all -E "say next_prime('30659918')" > Perl_command1.out

这会将文件放入您的当前目录。但是你可以给它任何类型的文件路径。

perl -Mntheory=:all -E "say next_prime('30659918')" > /some/other/directory/Perl_command1.out

同样的事情适用于 Perl 程序。

./perlscript.pl > Perl_command1.out

一般来说,我发现像这样使用 I/O 重定向比在代码中硬编码文件名要灵活得多。

我不确定你从哪里得到你的 ntheory.pm 文件,但它是 Perl 编程中公认的标准,像这样的模块的名称以大写字母开头。所以 NTheory.pm 会是一个更好的名字。