在 Perl 脚本中使用命令?
Using commands inside scripts for Perl?
我试图 运行 脚本中的 perl 命令,这是我得到的结果:
filenumber1.txt:
94088076164765675
命令 window 看起来没问题:
C:\Users\Guest\Documents\Prime 数字>perl -Mntheory=:all -nE "chomp; say next_prime($_);" filenumber1.txt
94088076164765687
我正在尝试在一个名为 primenumbers.pl 的脚本中执行此操作,并生成另一个名为 log.txt 的文件作为输出文件,并生成另一个名为 filenumber1.txt 的文件作为输入文件:
#!/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;
perl -Mntheory=:all -nE "chomp; say next_prime($_);" filenumber1.txt
primenumbers.pl 与 filenumbers.txt 在同一目录中,当我 运行 脚本时出现错误,我不知道是什么:
C:\Users\Guest\Documents\Prime 数字>perl primenumbers.pl
在 primenumbers.pl 第 7 行,在“"say next_prime($_);" filenumber1.txt”
附近,在运算符预期的位置找到了 Bareword
(Missing operator before filenumber1.txt?)
第 7 行 primenumbers.pl 的语法错误,靠近“"say next_prime($_);" filenumber1.txt”
primenumbers.pl 的执行因编译错误而中止。
我尝试自己修复它,但我只会让事情变得更糟,并且有更多的问题需要修复。有谁知道如何在不查看输入文件 "filenumber1.txt" 的情况下生成输出文件 "log.txt" 来帮助我?提前致谢。
-n
切换到 perl
只是将代码包装在 while (<>) { ... }
中,因此,要在您自己的程序中获得类似的效果,只需自己添加循环(未经测试的代码;可能包含错误):
#!/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;
while (<>) {
chomp; say next_prime($_);
}
运行这个跟
primenumbers.pl filenumber1.txt
你应该设置好了。
我试图 运行 脚本中的 perl 命令,这是我得到的结果:
filenumber1.txt:
94088076164765675
命令 window 看起来没问题:
C:\Users\Guest\Documents\Prime 数字>perl -Mntheory=:all -nE "chomp; say next_prime($_);" filenumber1.txt
94088076164765687
我正在尝试在一个名为 primenumbers.pl 的脚本中执行此操作,并生成另一个名为 log.txt 的文件作为输出文件,并生成另一个名为 filenumber1.txt 的文件作为输入文件:
#!/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;
perl -Mntheory=:all -nE "chomp; say next_prime($_);" filenumber1.txt
primenumbers.pl 与 filenumbers.txt 在同一目录中,当我 运行 脚本时出现错误,我不知道是什么:
C:\Users\Guest\Documents\Prime 数字>perl primenumbers.pl
在 primenumbers.pl 第 7 行,在“"say next_prime($_);" filenumber1.txt”
附近,在运算符预期的位置找到了 Bareword (Missing operator before filenumber1.txt?)
第 7 行 primenumbers.pl 的语法错误,靠近“"say next_prime($_);" filenumber1.txt”
primenumbers.pl 的执行因编译错误而中止。
我尝试自己修复它,但我只会让事情变得更糟,并且有更多的问题需要修复。有谁知道如何在不查看输入文件 "filenumber1.txt" 的情况下生成输出文件 "log.txt" 来帮助我?提前致谢。
-n
切换到 perl
只是将代码包装在 while (<>) { ... }
中,因此,要在您自己的程序中获得类似的效果,只需自己添加循环(未经测试的代码;可能包含错误):
#!/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;
while (<>) {
chomp; say next_prime($_);
}
运行这个跟
primenumbers.pl filenumber1.txt
你应该设置好了。