Tag: perl

使用Perl的`系统`

我想运行一些命令(如command )使用Perl的system() 。 假设command是这样从shell运行的: command –arg1=arg1 –arg2=arg2 -arg3 -arg4 如何使用system()来运行带有这些参数的command ?

()函数和函数()之间的区别(重复)

可能重复: 什么时候应该使用&来调用一个Perl子程序? 在perl脚本中,为什么调用该函数的方法有时被写入不同的方法。 我看到&function,有时function()。 他们都是一样的,这只是一个人想要炫耀的风格吗? 如果他们是一样的,为什么他们都可用,不就够了吗? 我猜测这两种方法之间存在一些语义上的区别,但是在什么样的情况下呢? —由于超时原因我无法回答自己的问题,因此我正在更新问题部分的答案。 当我有机会更新答案块时,我会把它放在那里。 我在“学习Perl”书中find了相关的文字。 第4章:子程序 – 省略&符号。 我对perl函数的&符号更感兴趣。 如果在调用子程序之前已经定义了子程序,那么调用子程序时不需要调用类似于调用内build函数的函数。 &也被用来区分内build函数和用户定义的函数,如果被调用的函数使用与内build函数相同的名字,只要它在被调用之前被定义。 ()的使用仅仅是为了将parameter passing给子例程,而如果不使用,当前参数的默认列表以@_的forms传递。 如果在()中为子例程指定了参数,则假定它是一个子例程,并且即使之前在parsing时没有定义,也会被调用。

我怎样才能在Perl网页爬虫处理Javascript?

我想抓取一个网站,问题是,它充满了JavaScript的东西,比如button等,当它们被按下时,它们不会改变URL,但是页面上的数据被改变了。 通常我使用LWP / Mechanize等来抓取网站,但都不支持JavaScript。 任何想法?

如何在Perl中捕获stderr,stdout和退出代码?

是否有可能从Perl运行外部进程,捕获它的stderr,stdout和进程退出代码? 我似乎能够做到这些的组合,例如使用反引号获取标准输出,IPC :: Open3捕获输出,和system()获得退出代码。 如何一次捕获stderr,stdout和退出代码?

提交表单并保持在同一页面上?

我有一个看起来像这样的表单 <form action="receiver.pl" method="post"> <input name="signed" type="checkbox"> <input value="Save" type="submit"> </form> 我想保持在同一页面上,当点击提交,但仍然有receiver.pl执行。 应该怎么做?

在用户浏览器中通过PHP / Perl显示PDF文件

我想显示我的用户PDF文件。 我之所以用cgi来显示pdf,是因为我想跟踪pdf的点击次数,并隐藏了保存的pdf的真实位置。 我一直在互联网上search,只发现如何显示保存对话框的用户和创build一个pdf,而不是显示给用户的文件。 我想要的是向用户显示我的PDF文件, 而不是创build或下载 PDF文件。 这是我从官方的PHP文档中得到的: <?php header('Content-type: application/pdf'); readfile('the.pdf'); ?> 另外我的谷歌search结果的Perl代码: open(PDF, "the.pdf") or die "could not open PDF [$!]"; binmode PDF; my $output = do { local $/; <PDF> }; close (PDF); print "Content-Type: application/pdf\n"; print "Content-Length: " .length($output) . "\n\n"; print $output 如果你用ruby做的话,请对我说。 但是我不确定我的服务器是否支持rails。 对不起,如果我的代码离显示pdf的方法太远了,因为我对pdf处理以及如何实现这个问题一无所知。 让我们假设用户有Adobe Reader插件。 那么,如何解决我的问题? 编辑 :我想显示纯文本的PDF文件。 我的主要目的:跟踪我的PDF文件,并使用一些奇特的url。 […]

我怎样才能检查一个Perl数组是否包含一个特定的值?

我试图找出一种方法来检查数组中的值的存在,而不是遍历数组。 我正在读取一个参数的文件。 我有一长串的参数,我不想处理。 我把这些不需要的参数放在一个数组@badparams 。 我想读一个新的参数,如果它不存在于@badparams ,处理它。 如果它存在于@badparams ,请转到下一个阅读。

如何读取Perl中的目录内容?

如何让Perl将给定目录的内容读入数组? 反引号可以做到这一点,但是有没有使用“scandir”或类似术语的方法?

我如何parsingdate和在Perl中转换时区?

我在Perl中使用localtime函数来获取当前的date和时间,但需要parsing现有的date。 我有以下格式的GMTdate:“20090103 12:00”我想parsing它到我可以使用的date对象,然后将GMT时间/date转换为我当前的时区,这是目前东部标准时间。 所以我想转换“20090103 12:00”到“20090103 7:00”关于如何做到这一点的任何信息将不胜感激。

在回溯和失败之后动作的动词

我最近正在阅读PCRE (兼容Perl的正则expression式)文档,并用正则expression式来看一些有趣的技巧。 当我继续阅读和耗尽自己的时候,我停止了,因为使用一些(*…)模式的一些混淆。 我的疑问和困惑涉及(*PRUNE)和(*FAIL) 现在引用(*SKIP)行为就像(*PRUNE) ,只是如果模式是未锚定的,那么bumpalong的前进就不是到下一个字符,而是到了主体中遇到(*SKIP)的位置 。 如果模式的其余部分不匹配,则(*PRUNE)会导致匹配在主题中的当前起始位置失败。 它指出(*FAIL)与(?!)否定断言的同义词。 在模式中的给定位置强制匹配失败。 所以基本上(*FAIL)行为就像一个失败的否定断言,是(?!)的同义词(?!) 和(*PRUNE)导致匹配失败在主题的当前开始位置 ,如果有一个后来匹配失败,导致回溯到达它。 在谈到失败的时候,这些有什么不同呢? 任何人都可以提供这些如何正确实施和使用的例子吗?