草庐IT

perl-critic

全部标签

PHP 等同于 Perl 的 'use strict'(要求变量在使用前进行初始化)

Python的约定是变量是通过第一次赋值创建的,在赋值之前尝试读取它们的值会引发异常。相比之下,PHP在读取变量时会隐式创建一个空值变量。这意味着在PHP中很容易做到这一点:functionmymodule_important_calculation(){$result=/*...longandcomplexcalculation...*/;return$resukt;}此函数始终返回null,如果null是该函数的有效值,则该错误可能会在一段时间内未被发现。Python等价物会提示变量resukt在赋值之前被使用。那么...有没有办法将PHP配置为对变量赋值更严格?

php - 从 Perl 在后台运行作业,无需等待返回

免责声明首先,我知道这个问题(或近似变体)已被问过一千次。我确实花了几个小时查看明显和不那么明显的地方,但我可能遗漏了一些小东西。背景让我更清楚地定义问题:我正在编写一个时事通讯应用程序,我希望其中的实际发送过程是异步的。例如,用户单击“发送”,请求立即返回,然后他们可以在特定页面(例如通过AJAX)中检查进度。它是在您的传统LAMP堆栈中编写的。在我使用的特定主机中,PHP的exec()和system()出于安全原因被禁用,但Perl的系统函数(exec、system和反引号)却没有。所以我的workaround解决方案是在Perl中创建一个“触发器”脚本,它通过PHPCLI调用实际

php - Perl exec ('/usr/bin/php -v' ) 在 CentOS 6.6 上挂起,除非先关闭 STDIN

我的问题是,这是预期的(为什么?)和/或这种行为是否也出现在其他系统上?环境:#cat/etc/*-releaseCentOSrelease6.6(Final)...#perl-vThisisperl,v5.10.1(*)builtforx86_64-linux-thread-multi...#php-vPHP5.4.41(cli)(built:May14201523:15:28)...迷你.pl:#!/usr/bin/perlexec('/usr/bin/php-v');运行它并查看挂起的PHP进程:#perlmini.pl&[2]16958[1]Killedperlmini.pl#

php - 如何从 PHP 调用 Perl 脚本?

我有兴趣了解我们可以在PHP中调用/运行Perl脚本的方式。 最佳答案 您可以在Php代码中使用简单的PhpPerl扩展。这将允许您执行代码和Perl变量、函数并实例化对象。$perl=newPerl();$perl->require("test1.pl"); 关于php-如何从PHP调用Perl脚本?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3733844/

android - 如何使用 Perl 脚本测试使用 Eclipse Epic 的 Android 应用程序?

我正在为Android应用程序进行Perl测试。如何使用Perl脚本通过EclipseEpic测试Android应用程序? 最佳答案 我的解决方案:#usestrict;#usewarnings;system("adbshellamstart-acom.android.intent.action.MAIN-ncom.android.mms/.ui.ConversationList");sleep(0);system("adbshellamstart-acom.android.intent.action.MAIN-ncom.andro

android - 在 Android 上运行 Perl 脚本

我需要从我的Android应用程序运行Perl脚本(isohybrid.pl)。我遇到了perl-android-apkproject这似乎正是我所需要的。它作为一个eclipse项目出现,您可以从这个基础构建您需要的东西。问题是我在自己的项目中需要这个。所以我的问题是如何将其合并到我自己的项目中?我也愿意接受有关在Android上运行Perl脚本的其他建议-但是,Perl解释器需要包含在我的APK中。 最佳答案 APK网站托管在GoogleCode上,因此如果您知道如何使用git,您应该能够使用他们的网站将源代码拉下来:https

c++ - PUSHMARK(SP) 中的 Perl 5.12.3 C/C++ 代码崩溃;在 Solaris 5.9 上出现段错误

我有一个C/C++代码,它使用perlcall来调用perl脚本,并且正在使用5.8.90的Perl版本。由于5.8.90中的一些内存泄漏/堆损坏,我们计划使用5.12.3,最新版本的perl。在使用5.12.3版本的libperl.so时,我们的程序在调用“PUSHMARK(SP);”时崩溃了我尝试在dbx中调试,但只能获得以下信息t@32(l@32)由信号SEGV终止(在故障地址处无映射)如果有人遇到这个问题,请告诉我。找到根本原因的任何指示都会非常有帮助。 最佳答案 我将根据我的研究关闭线程。Ysth-感谢您提供信息。实际上,

C++ 调用 perl 代码 - eval_sv 不将参数传递给脚本

我有下面的示例程序,它将参数推送到Perl堆栈,然后调用“eval_sv”。执行了示例perl语句,但我无法检索作为Perl参数从C++传递的变量。请让我知道我在下面的程序中缺少什么程序的输出HelloWorldTest100Testingcomplete这一行不打印$a和$b的值stringthree="print'Test\n';my$z=100;print$a;print$b;print$z;";这是我的代码:#include#include#includeusingnamespacestd;stringperlScript;staticPerlInterpreter*my_pe

c++ - perl xs - 无法从方法调用返回新的自定义 C++ 对象 - 而是返回标量值

在我的XS文件中我有:作为我的新方法:matrix*matrix::new(size_tncols,size_tnrows)它返回一个matrix对象,我可以调用方法。然后我有一个方法调用,它创建一个新的矩阵对象并应该将它作为一个新的矩阵返回:matrix*matrix::getInnerMatrix()PREINIT:char*CLASS=(char*)SvPV_nolen(ST(0));CODE:RETVAL=static_cast(THIS->matrix::getInnerMatrix());OUTPUT:RETVAL然而,返回的类型是matrix=SCALAR(0x122f8

c++ - 在 perl 中调试由 SWIG 包装的共享库

我在Perl中使用SWIG包装了我的C/C++代码。由于包装代码,我几乎没有段错误。我正在尝试将ddd与Perl脚本一起使用,但不幸的是,即使我在脚本的一行(调用C/C++代码的代码)上设置断点,ddd也是无法进入C/C++代码。当我调试Perl代码时,有什么方法可以在我的C库中设置断点,或者当我运行此Perl脚本时,您知道调试C库的好方法/工具吗?我正在使用Linux/gcc。 最佳答案 我做了一件简单的事情。我直接在perl解释器上调用了gdb。gdb/usr/bin/perl(gdb)rmyscript#blockthescr