标签: activeperl

我应该为Windows选择ActivePerl还是Strawberry Perl?

我是Perl的新手,但我想尝试一下.我读到了两个可用于Windows平台的竞争对手(我想其他操作系统上只有 Perl :).

维基百科说,如果有必要,Strawberry会附带开发工具来编译CPAN模块.对我来说不错.

它还说ActivePerl有很多预先打包的模块,使用PPM更容易安装.听起来也很棒!

这两者之间有明确的权衡.我想知道我应该选择什么才能开始?如果我选择一个有多难移植到另一个?

编辑:我给这两个发行版跑了几个星期.我真的很喜欢这两件事都是好事!其中任何一个都不会出错.我最终只使用ActivePerl,因为它带有离线文档(HTML格式) - 对于那些在路上或者并不总是连接的人来说,这是一个伟大的生命救星.当我不在线时,我在度假时开始使用Perl语言非常容易.

草莓至少同样伟大,如果不是更大.所以我也可以完全推荐它.我不得不说一个人应该学习Perl - 这是一门非常漂亮的语言.试试看!

windows perl activeperl strawberry-perl

107
推荐指数
5
解决办法
8万
查看次数

使用ActivePerl时,为什么必须指定带备份扩展名的-i开关?

除非我使用备份扩展名指定它们,否则我无法在ActivePerl下运行Perl单行编辑工作.

C:\> perl -i -ape "splice (@F, 2, 0, q(inserted text)); $_ = qq(@F\n);" file1.txt
Can't do inplace edit without backup.
Run Code Online (Sandbox Code Playgroud)

与处理相同的命令-i.bak-i.orig处理相同的命令但会在此过程中创建不需要的备份文件.

有没有解决的办法?

perl activeperl

23
推荐指数
1
解决办法
1万
查看次数

为什么perl之后没有ms\do_ms.bat配置VC-WIN64A

我正在使用Visual Studio 2015编译OpenSSL.我已安装:1.Windows 10上的Visual Studio 2015.

  1. 的ActivePerl-5.24.0.2400-MSWin32-x64-300558.

  2. NASM - 08年2月11日 - Win32的.

  3. OpenSSL源代码由git clone git://git.openssl.org/openssl.git提供

我做的是:

  1. 使用以下行创建批处理文件.

    @call"C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\VC\vcvarsall.bat"x86_amd64 @set path =%path%; C:\ Users\gchen\AppData\Local \nasm

  2. perl配置VC-WIN64A -prefix = C:\ test\openssl

现在我应该做ms\do_win64a.但我找不到这个批处理文件.在目录'ms'中,有文件

2016/08/22 17:39

2016/08/22 17:39 ..

2016/08/21 14:23 3,646 applink.c

2016/08/21 14:23 1,247 cmp.pl

2016/08/21 14:23 2,815 segrenam.pl

2016/08/21 14:23 4,541 tlhelp32.h

2016/08/21 14:23 1,137 uplink-common.pl

2016/08/21 14:23 1,472 uplink-ia64.pl

2016/08/21 14:23 1,111 uplink-x86.pl

2016/08/21 14:23 1,594 uplink-x86_64.pl

2016/08/21 14:23 4,225 uplink.c

2016/08/21 14:23 2,268 …

openssl activeperl visual-studio-2015

13
推荐指数
2
解决办法
7371
查看次数

如何在Apache 2上忽略Windows上的Perl shebang?

我在Windows机器上设置了一个本地Perl Web环境.我正在处理的应用程序最初来自Linux服务器,因此源.pl文件的shebang 如下所示:

#!/usr/bin/perl
Run Code Online (Sandbox Code Playgroud)

这会导致我的Windows开发机器出现以下错误:

(OS 2)The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)

是否可以更改我的Apache 2 conf以便在我的Windows机器上忽略shebang?当然我可以设置shebang #!c:\perl\bin\perl.exe,这很明显; 但问题是部署更新的文件.显然,在每次部署时更改这一点会非常不方便.我在Windows 7上使用ActivePerl.

更新:

我应该提到我需要保留shebang,以便脚本可以在我们的共享主机Linux生产服务器上运行.如果我没有这个约束而且我不必使用shebang,那么显而易见的答案就是不使用它.

windows perl apache2 shebang activeperl

11
推荐指数
1
解决办法
6333
查看次数

在Windows 7中使用ActivePerl时@ARGV为空

我有以下Perl脚本.我试图使用ActivePerl在Windows 7中运行它:

#!c:\Perl64\bin\perl.exe -w

use strict;

my $mp3splt_exe = 'c:\Program Files (x86)\mp3splt\mp3splt.exe';

my $mp3splt_args = '-o "@n @f" -g "r%[@o @N]"  -f -t 6.0';

print @ARGV;
my $filename = $ARGV[0];

print "$mp3splt_exe $mp3splt_args $filename\n";
Run Code Online (Sandbox Code Playgroud)

(正如你所看到的,我正在尝试为mp3splt创建一个包装器:-))

当我像这样运行它:

C:\ Program Files(x86)\ mp3splt> run_mp3splt.pl a

我明白了:

Use of uninitialized value $filename in concatenation (.) or string at C:\Program Files (x86)\mp3splt\run_mp3splt.pl line 12.
c:\Program Files (x86)\mp3splt\mp3splt.exe -o "@n @f" -g "r%[@o @N]"  -f -t 6.0
Run Code Online (Sandbox Code Playgroud)

所以,首先,当我print @ARGV,没有任何东西被打印出来,其次,当我分配时$filename = $ARGV[0],$filename …

perl activeperl command-line-arguments windows-7

9
推荐指数
3
解决办法
1万
查看次数

我可以在一台计算机上同时使用Strawberry Perl和ActiveState Perl吗?

我不是Perl的新手,但这个问题让我很困惑.

我曾经删除过我的ActiveState Perl,并且所有已安装的模块都丢失了.所以现在我对这类问题非常小心.由于某种原因,我现在想要使用Strawberry Perl,同时保持ActiveState Perl的使用.

这会导致兼容性问题吗?这是可取的吗?

perl activestate activeperl strawberry-perl

9
推荐指数
2
解决办法
2505
查看次数

使用activeperl设置sublime text 2?

使用sublime text 2的新手,我想知道如何让它指向activeperl.exe(在win7上).

我正在测试编译器,以确保它适用于以下简单的东西:

$x = 1;
$print "$x";
Run Code Online (Sandbox Code Playgroud)

但它让我觉得$ x不是一个公认的语法.我确实将ST2指向我的python可执行文件,但我忘记了迷宫中哪个文件我应该编辑路径.

perl activeperl sublimetext2

9
推荐指数
1
解决办法
8963
查看次数

如何在没有Internet连接的情况下在ActivePerl中安装软件包?

在ActivePerl中,"ppm"从Internet安装包,"ppm install x.ppd"从ppd文件安装,但大多数CPAN包以.tar.gz形式分发.

如何为运行没有Internet连接的ActivePerl的计算机提供模块?("make"可能无法使用.)

更新:Internet连接可用于下载文件并使用USB密钥等将其传输到计算机.

windows perl activeperl

8
推荐指数
2
解决办法
1万
查看次数

在Perl中,如何生成由八个十六进制数字组成的随机字符串?

使用Perl,不使用任何不带ActivePerl的额外模块,如何从0-F创建一个包含8个字符的字符串.例子0F1672DA?填充应该是可控的,最好是8个字符.

我想要生成的字符串种类的更多示例:

28DA9782
55C7128A
Run Code Online (Sandbox Code Playgroud)

string random perl activeperl perl5

8
推荐指数
4
解决办法
2万
查看次数

为什么STDIN导致我的Perl程序冻结?

我正在学习Perl并使用STDIN编写此脚本来练习.当我运行脚本时,它只显示控制台上的第一个print语句.无论我输入什么,包括换行,控制台都不会显示下一个打印声明.(我在Windows机器上使用ActivePerl.)它看起来像这样:

$perl script.pl
What is the exchange rate? 90.45
[Cursor stays here]

这是我的脚本:

#!/user/bin/perl
use warnings; use strict;

print "What is the exchange rate? ";
my @exchangeRate = <STDIN>;
chomp(@exchangeRate);

print "What is the value you would like to convert? ";
chomp(my @otherCurrency = <STDIN>);

my @result = @otherCurrency / @exchangeRate;
print "The result is @{result}.\n";
Run Code Online (Sandbox Code Playgroud)

在研究我的问题时我注意到的一个可能的解决方案是我可以包括

use IO::Handle;
flush STDIN; flush STDOUT;
在我的脚本中.不过,这些线条并没有解决我的问题.

我该怎么办才能使STDIN正常运行?如果这是正常行为,我错过了什么?

perl stdin activeperl

7
推荐指数
2
解决办法
2868
查看次数