Articles of perl

Perl脚本在所有文件中recursion地将<h2>标签全部replace为<h1>

所以像这样的东西 <h2 style='margin-top: 10px;'> <?php echo $title; ?> </h2> 应该成为 <h1 style='margin-top: 10px;'> <?php echo $title; ?> </h1> 我使用这个代码perl -pi -e 's/<h2(.*)<\/h2>/<h1\1<\/h1>/g' *但它只在标签位于一行时才起作用。

用python运行perl脚本

我一直在看这里和其他地方的多个例子,但似乎没有为我工作。 我对python一无所知。 我所要做的就是运行一个简单的perl脚本 sdb1/media/process.pl 我find的示例代码遍布整个地方,大部分看起来像是有额外的东西,我不需要。 我现在正在尝试的是 #! /usr/bin/python pipe = subprocess.Popen(["perl", "/sdb1/media/process.pl"], stdout=subprocess.PIPE) 但是这只是给了我错误 NameError: name 'subprocess' is not defined 如果我错过了任何重要的事情,请告诉我。 否则,谢谢你的时间。

Perl套接字如何在Linux下parsing主机名?

我有一个(从我可以告诉)完美的工作Linux的设置(Ubuntu 8.04)所有的工具(nslookup,curl,wget,火狐等)能够解决地址。 但是,以下代码失败: $s = new IO::Socket::INET( PeerAddr => 'stackoverflow.com', PeerPort => 80, Proto => 'tcp', ); die "Error: $!\n" unless $s; 我validation了以下几件事情: Perl能够用gethostbyname来parsing地址(例如下面的代码): my $ret = gethostbyname('stackoverflow.com'); print inet_ntoa($ret); 原始的源代码在Windows下工作 这是它应该如何工作(即它应该parsing主机名),因为LWP试图使用这种行为(事实上,我试图debugging为什么LWP不为我工作,偶然遇到问题) 运行脚本不会发出DNS请求(所以它甚至不会尝试parsing名称)。 使用Wireshark进行validation

如何安装Perl脚本的依赖关系?

我试图执行一个在Perl上运行的守护进程,并且该文件被称为ffencoderd.pl 。 每次运行时,都会指出文件丢失,例如Can't Locate IO/Scalar.pm 。 所以我去CPAN.orgfind这个文件并安装它。 唯一的问题是我刚刚安装了6个文件,我担心可能会有20个以上的文件。 而不是继续运行ffencoderd.pl并发现我需要安装另一个文件,我想知道是否有更新perl 。 这些文件是否在正确安装的Perl中是标准的? EX: Config-General-2.50 , Pod-Xhtml-1.61 , libxml-enno-1.02等

使用草莓Perl 5.16.2.2(64位)安装模块

我曾经使用过activestate perl,但是刚搬到草莓perl是因为我想安装那些不太常用的软件包。 不过,我在我的Windows 7上用Strawberry Perl 5.16.2.2(64位)安装模块时遇到问题。 安装了草莓Perl后,我证实perl工作正常(参考文献1)。 但是安装模块是另外一回事。 根据自述文件, “2.从http://www.cpan.org/安装额外的perl模块(库) c:\> cpan Module::Name" 但是这是我得到的: C:\>cpan Can't locate App/Cpan.pm in @INC (@INC contains: /usr/lib/perl5/5.8.8/msys /usr/ lib/perl5/5.8.8 /usr/lib/perl5/site_perl/5.8.8/msys /usr/lib/perl5/site_perl/5.8 .8 /usr/lib/perl5/site_perl .) at /d/sberry/perl/bin/cpan line 6. BEGIN failed–compilation aborted at /d/sberry/perl/bin/cpan line 6. 然后我尝试通过“perl -MCPAN -e shell”自己configurationCPAN,但这是我得到的: Where is your gzip program? [/bin/gzip] Where is your tar […]

在Windows中重新加载Mojolicous服务器

我有一个运行在Windows上的Mojolicious应用程序,它使用插件Mojolicious::Plugin::Config来加载configuration文件。 每当configuration文件被改变,我需要重新启动服务器。 是否可以在configuration文件更改时自动重新启动服务器,而无需手动再次运行它? 在Windows上如何解决这个问题使用Mojolicious? 我知道有可能用Mojo::Server::Morbo做到这一点,但我有兴趣使用内置的守护进程作为Morbo的开发。

在Windows上自我更新的exe

我正在尝试创build一个脚本,它将在服务器上检测到新版本时“自动更新”。 最初,我的想法是,当检测到新版本时,下载文件,然后启动一个DOSbatch file,用新文件覆盖原来的exe文件。 我想,我可以使用sytem(开始update.bat),然后立即退出0; .bat文件等待几秒钟,然后尝试删除旧的exe文件。 这个失败了,我猜是因为即使在使用系统(start …)时,新的“进程”实际上是一样的进程,这是正确的吗? 有没有办法从Windows启动一个全新的进程,这将允许我删除.exe? 还是有不同的方法会更好? 谢谢,Eric Seifert

如何将环境设置导入到我的Perl程序中?

我有一个脚本,其内容只是在linux中导出一个variables。 export LD_LIBRARY_PATH=…. 我想在我的Perl脚本中运行这个脚本,这样任何运行我的Perl脚本的人都将设置它们的LD_LIBRARY_PATH 。 我可以在我的Perl脚本的开始执行此操作: #!/usr/bin/perl -w system(". /myfolder1/myfolder2/myScript.sh");

PerlEmbed – C# – Mono – Linux

有没有人尝试在Mono Linux上使用perlembed? 这是链接: perlembed 这是我第一次尝试DllImport签名: private const string PERL_LIB = "/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so"; [DllImport(PERL_LIB, EntryPoint = "perl_alloc", SetLastError = true)] public static extern IntPtr Alloc(); [DllImport(PERL_LIB, EntryPoint = "perl_construct", SetLastError = true)] public static extern void Construct(IntPtr hPerl); [DllImport(PERL_LIB, EntryPoint = "perl_destruct", SetLastError = true)] public static extern void Destruct(IntPtr hPerl); [DllImport(PERL_LIB, EntryPoint = "perl_free", SetLastError = […]

如何在适用于子级的Perl脚本中设置ulimit?

我有一个Perl脚本,执行各种安装步骤来为我们公司设置一个开发框。 它运行各种shell脚本,其中一些由于低于所需的ulimit (特别是堆栈大小 – 在我的情况下)而崩溃。 因此,我想设置一个适用于从我的主Perl中启动的所有脚本( children )的ulimit ,但我不知道如何实现这一点 – 任何从脚本内调用ulimit的尝试只设置它该特定的子shell,立即退出。 我知道我可以在运行Perl脚本之前调用ulimit或者使用/etc/security/limits.conf但是我不希望用户知道这些 – 他们只应该知道如何运行脚本,它应该为他们照顾这一切。 我也可以在每次运行命令时运行ulimit ,像这样ulimit -s BLA; ./cmd ulimit -s BLA; ./cmd但我不想每次重复这个,我觉得有一个更好,更干净的解决scheme。 另一个疯狂的“解决方法”是制作一个名为BLA.sh的包装脚本,它将设置ulimit并调用BLA.pl,但是在我看来,这是一个破解,现在我有两个脚本(我甚至可以使BLA.pl用“ulimit -s BLA; ./BLA.pl-foo”来调用自己,根据它是否看到–foo而不同,但是这比以前更加黑客)。 最后,显然我可以安装BSD ::资源,但我想避免使用外部依赖。 那么从Perl脚本中设置ulimit的方法是什么,并使其适用于所有的孩子? 谢谢。