我正试着学习PAR和PAR:Packer。我知道PAR是一个允许从.par档案中加载模块的模块。我不明白pp、par.pl、parl的三个脚本::Packer。(注意:在这个问题中,parl包括parl.exe for windows)。
,,par.pl到底是什么?它是否是一个perl脚本,其中包含perl解释器(与开发机器上的解释器相同)和PAR模块?,parl到底是什么?它是包含与par.pl相同的二进制吗?,如果我没有弄错par.pl和parl是什么,为什么会有人想要par.pl呢?parl看起来绝对优越,因为它可以在没有预先存在的perl的情况下运行。是安全的,可以分发给没有perl
我在运行perl脚本时获得了Can't locate Config/YAML.pm in @INC (you may need to install the Config::YAML module)。
无法在@INC中找到Config/YAML.pm (您可能需要安装Config::YAML模块) (@INC包含: /etc/perl /usr/local/lib/perl/usr/local/共享/perl/5.18.2/usr/perl 5/usr/share/perl 5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/lib/site_
我有一个perl脚本,它包含第一行,如下所示:
#!/usr/bin/env perl
我已经读到这是为了在环境中找到perl而执行的。但是现在,当我在命令行/usr/bin/env perl上执行这个命令时,perl本身就会被执行(位于/usr/bin/perl上)。但是,当我使用./myscript.pl启动脚本时,它会显示以下错误:
/usr/bin/env: No such file or directory
这是因为它找不到perl,因为当我键入/usr/bin/env xxxxxx时也会出现这个错误。
有人能解释一下,当我在命令行或脚本上运行它时,到底有什么不同吗?
我有一个Perl脚本
open (FILE, '<', "$ARGV[0]") || die "Unable to open $ARGV[0]\n";
while (defined (my $line = <FILE>)) {
# do stuff
}
close FILE;
我想在目录中的所有.pp文件上运行这个脚本,所以我用Bash编写了一个包装器脚本。
#!/bin/bash
for f in /etc/puppet/nodes/*.pp; do
/etc/puppet/nodes/brackets.pl
我正在尝试将一些JSON数据发送到我的Perl脚本,但JSON模块似乎无法处理此字符串:
[{"":"#","jednostka":"","login":"SA"}]
我在JavaScript中使用了encodeURIComponent(),所以我的字符串实际上是这样的:
[{%22%22:%22#%22,%22jednostka%22:%22%22,%22login%22:%22SA%22}]
错误日志:
JSON::PP::decode_error('unexpected end of
我一直在用pp
一段时间前!
但是,当我雇用另一个主机时,当我运行pp命令时,脚本不会在服务器上运行。
CentOS Linux7.9.2009(核心) Perl v5.32.1
命令使用pp,宿主旧
$ pp -x -c name.pl
跑步时
./a.out
Unable to open html entities file (/tmp/par-726f6f74/cache-78cdefedff4d2afddea0035addc3b570c8f0bfd5/inc/lib/Mojo/resources/html_entities.txt): No such file or directo
我最近安装了。网站上说它是v5.16。
我使用CPAN安装了。已成功安装。然后,我使用一个示例程序来测试Marpa::PP。当我试图运行它时,我得到了以下错误:
Perl v5.10.0 required--this is only v5.8.0, stopped at perl/site/lib/Marpa/PP.pm line 18.
BEGIN failed--compilation aborted at perl/site/lib/Marpa/PP.pm line 18.
Compilation failed in require at F:\workdir\perl\perl32\s
我有一个使用WWW::Mechanize::Firefox的Perl脚本,在使用PAR::Packager将其转换为可执行文件之前,它可以很好地工作。
它将错误显示为
Can't locate MozRepl.pm in @INC
我需要一些建议来解决这个问题,谢谢
@mpapec
更新
use WWW::Mechanize::Firefox;
use HTML::TreeBuilder::XPath;
use MozRepl;
use HTML::Entities ();
use Encode::Byte;
use Encode::Alias;
use Encode::Config
我刚刚找到了一份工作,其中80%的工作都在Unix环境中。我正在学习如何使用shell脚本。我真的很难在我的练习脚本上设置标题。如果你看一下我的第一个脚本,它接受头文件。我在一个新脚本上再次创建了相同的头文件,这给了我一个糟糕的解释器。两者都是使用命令chmod u+x nameOfScript创建的可执行文件。这两个脚本都在同一个位置。所以我真的不明白发生了什么。看一看:
parallels@ubuntu:~$ cat firstApp.ksh
#!usr/bin/ksh
# this prints the first line.
echo "Hi this is my fir
我写了一个perl脚本:
my $filename = '/root/report.txt';
open(my $fh, '>>', $filename) or die "Could not open file '$filename' $!";
print 'Hello world';
print $fh 'Hello world';
close $fh;
当我用perl script.pl运行这个脚本时,它创建了一个日志文件$filename,Hello world保存在日志文件中。
当我制作Perl 5.10.1时,我得到了一些错误,我发现了一些相关的线程,这些线程声明:
错误消息来自链接器,而不是编译器。您应该在所有编译行的末尾放置一个-lm。
我的问题是我需要将-lm添加到?
的编译行在哪里?
miniperlmain.o opmini.o perlmini.o
pp.o: In function `Perl_pp_pow':
pp.c:(.text+0x2daf): undefined reference to `pow'
pp.o: In function `Perl_pp_modulo':
pp.c:(.text+0x39fc): un
我一直在使用PAR::Packer来用Perl脚本创建独立的可执行文件。我对它的唯一困难是弄清楚我必须通过-l选项强制它包含哪些额外的DLL。
我现在正在使用一个Perl脚本,它需要使用utf16-le进行编码。Encode::find_encoding函数在脚本中工作得很好,但是在我用pp打包它之后,它就不能工作了。
下面是一个很小的脚本(让我们称之为encode.pl)来说明这个问题:
use strict;
use warnings;
use Encode;
my $_UTF16 = Encode::find_encoding ('utf16-le');
print $_
#!/usr/bin/perl
use Foo.pm # no such file
然后由cron运行,脚本会出现消息"Can't locate Foo.pm in @INC“。这是真的。但我看不到此消息(服务器和cron记录不在我的控制范围内),也无法检测丢失的文件。
有没有办法将这个错误消息重定向到日志文件?STDERR重定向不起作用,因为在编译时发生错误
在我的Fedora 27 virtualbox上编译Kdevelop时,我不断地收到这个错误。正如在中提到的,我尝试使用这一行kdesrc-build kdevelop
我得到了这样的回应:
kdesrc-build requires some minimal support to operate, including support from the Perl runtime that kdesrc-build is built upon.
Some mandatory Perl modules are missing, and kdesrc-build cannot operate
wi
我有一个运行在Win32 ActivePerl上的Perl/POE/Tk脚本,它使用system调用可执行文件。我使用pp创建了脚本的一个可执行文件。我可以解压exe并在"zip“文件目录的根目录下看到可执行文件,但是当我运行exe并尝试使用系统调用的功能时,我得到一个”找不到文件“类型的错误;
'..\cpau' is not recognized as an internal or external command,
operable program or batch file.
cpau.exe是其中的一个包含文件。
pp的名称如下:
pp -i alias3.
我有以#!/usr/bin/perl或#!/usr/bin/env perl开头的perl脚本
首先,第二个版本是什么意思?
其次,我使用Ubuntu。所有脚本都设置为可执行文件。当我试图通过简单地调用一个脚本的名称(例如./script.pl)来运行它时,我得到了: No such file or directory。当我通过perl ./script.pl调用时,它运行得很好。
为什么?
我试图从Windows文件中运行下面的perl代码,但是如果出现错误,The file name, directory name, or volume label syntax is incorrect.脚本在eclipse.My中运行良好,最终目标是使用windows任务调度程序定期运行这个perl脚本,从而从一个批处理文件中运行它。
还有其他方法可以实现我定期在windows上运行perl脚本的目标吗?
我希望我的脚本能够跨平台运行,因为我也计划在mac上运行它。
use strict;
use warnings;
use Data::Dumper;
use File::F
我正在尝试从shell脚本调用perl脚本,代码如下所示...
shell脚本test_sh
#Call the script
test2.pl ${PARTITION_ID} ${VNG_USER} ${VNG_PASSWORD} ${VNG_INSTANCE}
if [ $? -ne 0 ]
then
OP1ExitStatus -6
fi
执行过程中出现以下错误消息:
./test_sh[142]: test2.pl: not found
Failed in test_sh
授予这两个文件的权限都是755。
但是,当我通过传递所有参数直接从命令行调用test2.pl时,它会