草庐IT

strawberry-perl

全部标签

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

c++ - 从 C++ 跳到 Perl/Unix 作业

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。到目前为止,我一直是一名C++/Linux开发人员,我精通此技术栈。最近,我获得了需要Perl、Unix(具有C++、shell脚本知识)专业知识的机会。尽管我没有太多的脚本编写经验可以炫耀,但组织还是表现出了兴趣。该角色更多地出现在涉及SQL的支持、维护项目中。下类晚了,我在犹豫要不要放弃这些优惠。我不了解IT组织的动态,因此一方面我担心我的C++经验

c++ - 添加了闭包的 Perl newXS()

我想将Perl嵌入到C++应用程序中,并且正在寻找一种通过newXS()从Perl调用C++的方法。除了函数指针之外,我还需要将一个自定义指针关联到由newXS()创建的CV。该指针包含一个C++上下文。我不想为此使用全局变量。有没有一种通用的方法可以做到这一点?在更广泛的范围内,问题可能是天气有可能向由newXS()创建的CV添加一个闭包,以及在调用已注册的c函数时如何引用它它。CvPADLIST()似乎是完美的地方,但是对于XSubs,当设置PERL_IMPLICIT_CONTEXT时它似乎无效(在perl的pad.c开头注释。它可以被忽略吗?)。有没有其他地方可以放置CV本地数据

c++ - C++ 中长字符串的 Perl 风格引号

在C++中有没有一种方法可以在不必使用反斜杠转义的情况下引用字符串?例如,我想要一种将一些Latex代码存储在字符串中的方法,例如\documentclass{article}。我可以做stringlatex_code="\\documentclass{article}"但是当你必须转义很多东西时,这会变得很烦人,例如,如果你有很多Latex代码。在Perl中,我记得您有一些非常有用的引用工具。例如,请参阅此处的“q”和“qq”部分:http://www.perlmonks.org/?node_id=401006C++中有类似的东西吗?我唯一能想到的另一件事是将Latex代码粘贴到外部

windows - perl 优先于 glob @argv

因为在Windows上*.csv不会从命令行扩展到@ARGV我通常最终会做类似的事情map{glob}@ARGV获取文件名。然而,我遇到了一个异常,只是想了解到底发生了什么。我刚刚读完《异地奇缘》,所以我可以说我没有完全理解!useModern::Perl;#getsthefilelistbutthenwarnssay"Test1",'-'x20;do{func($_)formap{glob}@ARGV}orwarn"atleastoneargexpected\n";say'-'x27,"\n";#worksoksay"Test2",'-'x20;my@x=map{glob}@ARGV

windows - 有没有办法在 Perl 脚本中使用移动函数来获取文件传输的进度?

我是一名ETL开发人员,我处理大量数据,这些数据需要先从一种形式处理到另一种形式,然后才能加载到表中。因此,我使用的大多数脚本在某些时候都必须将文件从一个地方移动到另一个地方。我们是一家橱窗店。我想知道当我在Perl中使用move函数时是否有办法查看移动需要多少时间。如果我需要通过系统调用一个windows命令,它会给我这个选项,那么我也可以使用它。Perl或Windows命令行中是否有任何内容可以告诉我文件传输的进度?谢谢! 最佳答案 您可以使用Win32::FileOp来自cpan的包。这里是一段相关的摘录:CopyConfir

windows - 在 Windows 的 XAMPP 上从 CPAN 安装 perl 模块

我对Perl很生疏,我认为在Windows中运行它没有帮助。我想安装this模块。我尝试了说明here安装CPAN模块,但尝试安装App::cpanminus失败(第一步)。在这两种情况下,它都会失败并显示此错误消息:Unwrappinghadsomeproblem,won'ttryagainwithoutforceHadproblemsunarchiving.PleasebuildmanuallyRunningmaketestMakehadsomeproblems,won'ttestRunningmakeinstallMakehadsomeproblems,won'tinstallC