Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
 Perl_IT技术博客_编程技术问答 - 「Fatal编程技术网」

聊天机器人:用Perl编程聊天机器人

我正在学习Perl语言。我认为编写聊天机器人是学习这种语言的一种有趣的方式 可以找到我感兴趣的网站 是否有人知道任何手册或网站特别关注用Perl语言编程聊天机器人 谢谢大家! 您可以使用和获得灵感。请参阅-此处介绍了简单机器人: ,它是POE::Component::IRC的包装器 ,它当然使用POE::Component::IRC和Megahal库。Megahal库使用马尔可夫链来回复消息 不要使用Net::IRC-它不再受支持。github上的Openclassifier是一个开源软件,有A

如何使用;查找“;搜索“_id=>;OBjectID(“id”)“;在Perl API中

我必须在我的Mongo中找到一种“_id”,我可以使用Mongo shell来完成,但我不能使用Perl API来完成 我正在尝试这样做(mongo shell): 它起作用了!(返回),但我无法使用Perl API实现 $mongo->my_db->my_collection(find({_id => "ObjectId(4d2a0fae9e0a3b4b32f70000"})); 不起作用,因为“ObjectId”不是字符串,但如果是 ./mongo use my_db d

Mac OS X默认值是否有Perl接口?

MacOSX有一个名为的应用程序,它允许设置和检索应用程序配置变量 是否有一个Perl模块允许我读/写这些配置变量,而不必使用qx/?有和模块,但都不支持写。现在请坚持使用默认值

将txt文件读入perl';s散列

嘿,聪明的头脑 我需要将文本文件加载到哈希中。一行是关键,下一行是值。这会重复几百万次。如何以最佳方式完成这项工作,有什么建议吗 如果密钥是15个字符,值是50个字符,哈希表需要多少内存 谢谢以下代码应将文本文件加载到哈希中: my %hash; while (chomp(my $key = <DATA>)) { chomp(my $val = <DATA>); $hash{$key} = $val; } my%hash; while(chomp(my

Perl 连续运算符和括号

我只是想学习一点Perl,遇到了以下问题: foreach $element (@{$records}) { do something; } 在我的新手眼里,这是这样的: 对于名为@{$records}的数组中的每个元素,执行一些操作 但是,对于一个数组来说,这似乎是一个不太可能的名称(加上“@{$”),我想它不是那么简单吧 我还遇到了一起使用的“%$”。 我知道,%表示散列,$表示标量,但不知道它们一起意味着什么 有人能解释一下这些吗?如果有对数组或散列的引用,可以使用标量来保存引用

Perl:如何停止File::Find递归地进入目录?

我正在查看Perl的File::Find模块,并以以下方式进行了尝试: #!/usr/bin/perl use warnings; use strict; use File::Find; find({wanted => \&listfiles, no_chdir => 1}, "."); sub listfiles{ print $File::Find::name,"\n"; } 现在,当我运行它时,我得到以下输出: Noob@Noob:~

用Perl解码UTF-8URL

考虑: use URI::Escape; print uri_unescape("%C3%B3"); 产量:195立方米 用这个解码 产出:10 这是预期的结果 我应该使用什么Perl库来获得正确的输出?如果您知道字节序列是,请使用Encode::decode: use Encode; use URI::Escape; my $in = "%C3%B3"; my $text = Encode::decode('utf8', uri_unescape($in)); print length(

如何使用Perl将此输出转换为此表格式?

我有以下输出数据: 10dvex1_miRNA_ce.out.data|3331 10dvex1_misc_RNA_ce.out.data|0 10dvex1_rRNA_ce.out.data|60 10dvex1_snoRNA_ce.out.data|895 10dvex1_snRNA_ce.out.data|2127 11dvex1_miRNA_ce.out.data|3367 11dvex1_misc_RNA_ce.out.data|0 11dvex1_rRNA_ce.out.data|5

如何在perl中获得json格式的LWP请求输出

我不知道如何以json格式解析LWP post请求的输出。 我正在使用以下代码:- use LWP::UserAgent; use JSON; my $ua = LWP::UserAgent->new; my $server_endpoint = URL; #URL contains actual URL # set custom HTTP request header fields my $req = HTTP::Request->new(

Perl 在草莓便携机5.20.2上安装Pod::拼写失败

当我在草莓5.20.2(64位PortableZIP版)上尝试cpanm Pod::Spell时,它将I18N::Langinfo标记为依赖项。当它试图下载I18N::Langinfo的发行版时,它会将其定位在R/RJ/RJBS/perl-520.0.tar.gz中,明智地认为最好继续 Pod::Spell仅作为Perl::Critic的依赖项才有意义 有没有关于如何解决这个依赖性问题的建议?很有意思。我在Windows上查找了我的自建Perl,但它也没有安装。我本来希望它能被安装好,这样它就能

接受重定向参数url的perl cgi脚本

我需要创建一个Perl CGI脚本,它将接受单个参数作为输入。该参数将是一个完全限定的URL,脚本将把浏览器重定向到作为参数传递的URL。方法是GET而不是POST 浏览器地址栏将接受带有URL参数的完整脚本,如下所示: 我是Perl新手,我可以通过POST而不是GET来解决这个问题。任何帮助都将不胜感激 我偷了这段代码,但它没有得到一个GET,我想我使用了一个不好的例子,或者一个不适用于我需要做的事情的例子: 更新:这是我的解决方案 #!/usr/local/bin/perl use stri

Perl DBI动态fetchrow while循环

我试图将表名传递给一个子集,该子集获取该表的所有字段名,将它们存储到一个数组中,然后将该数组与另一个sql查询的fetchrow结合使用,以显示这些字段中的数据。以下是我现在拥有的代码: 以表名作为参数的子调用示例: shamoo("reqhead_rec"); shamoo("approv_rec"); shamoo("denial_rec"); 沙穆分公司: sub shamoo { my $table = shift; print uc($table)."\n======

就可以';t使perl按预期工作(条件和变量声明)

编辑: 这一次我会尝试更好的解释,这是我脚本中的确切代码(很抱歉,这些都是你建议的结果,下面的视频中有apear) 首先,有人说我应该试着在命令行中运行它,脚本在命令行中运行良好(没有警告,当时没有注释),但是当triyng通过apache在浏览器中加载失败时,,请看我在哪里捕获了脚本行为,我试图在视频中显示的内容: 我打开了两个选项卡,第一个选项卡没有定义变量$id\u client,第二个选项卡定义从GET读取的变量$id\u client:?id\u client=36124=>$id\u

如何在Perl中复制只读目录?

我正在使用File::Copy::Recursive::dircopy($original\u dirname,$new\u dirname)或die$从Perl脚本中复制只读目录。我收到一个权限被拒绝的错误 我可以看到创建了$new\u dirname,但标记为只读(与原始目录类似)。可能这会阻止将内容复制到其中?。是的,这显然是File::Copy::Recursive中的一个bug。临时解决方法是将$File::Copy::Recursive::KeepMode设置为0,然后自己执行chm

需要建议:使用Perl的Webspider

蜘蛛应: 通过post登录表单登录 通过cookies维护登录状态 在主页中跟随随机链接 蜘蛛的目的是让一个新网站保持忙碌,模拟许多用户正在浏览它 我看过LWP和WWW::Mechanize。不确定应该使用哪个模块,或者其他更好的建议。如果你有代码的例子是非常好的 谢谢。WWW::Mechanize,在这两种选择之间。它的引擎盖下有LWP::UserAgent。我没有使用CPAN模块WWW::Spider的经验,并且知道它远没有WWW::Mechanize那么有名,但是您也可以看看它是否满足您的

如何最好地将Perl方法中的错误属性化给调用方

给定一个可能失败并出现警告和/或错误的方法,我希望error方法显示在调用方。请执行此脚本: foo(0); # line 1 sub foo { 1 / shift; # line 4 } 在foo.pl第4行生成错误非法零除,但我希望在foo.pl第1行非法零除。如果我将方法放在模块中或将方法体包装在eval中,应该有几种方法,但我没有找到像这样简单的方法: sub foo { attributeErrorsToCaller; # do some mag

Perl 使用HTML::Template时遇到问题

如何使用arrayref进行哈希?如果我正确理解您的问题,我认为您正在寻找TMPL\u循环标记 构建一个哈希数组,并将其作为变量传递给param()call。然后使用TMPL\u LOOP构建您在foreach中所做的工作 print $hash{LEFT}; foreach $i ($hash{START}..$hash{END}){ if($pager == $i){ print "<span>$i<span>"; } else

在Perl中将变量保存到文本文件时损坏西班牙语字符

我想我有一个编码问题。我的perl知识不是很好。使用其他语言更好,但我已经尝试了我能想到的一切,并查看了许多其他帖子 我正在收集一个名字和地址。这可以包含非英语字符。在这种情况下,西班牙语 php进程使用curl来执行.pl脚本,并传递值URLEncoded pl在.pm中执行一个函数,将数据写入文本文件。没有涉及数据库 pl和.pm都有 use Encode; use utf8; binmode (STDIN, 'utf8'); binmode (STDOUT, 'utf8'); 定义。下

要在perl脚本中执行perl脚本吗

我需要关于perl的帮助。我是新手。 我想从父perl脚本执行perl脚本,并介绍以下场景: if (my child script takes more time than my time limit) { I need to kill the child script with a return code logged into my parent script log file } if (my child script failed to execute) {

Perl 这可以在一行中完成吗?

我是这样提取MAC地址的 my @tmp = split / /, "domain (123.123.123.123) at 00:11:22:33:44:55 [ether] on eth0"; my $vip = $tmp[3]; 但是不使用临时变量是否可以执行此操作?是的,它可以: my $vip = (split / /, "domain (123.123.123.123) at 00:11:22:33:44:55 [ether] on eth0")[3]; 您可以使用grep。这

了解Windows批处理文件与Perl'的交互;s system()函数

批处理文件的一个示例: @echo off echo starting setlocal cd c:\tmp set A=B perl -e "$ENV{X}='Y'; system('cmd')" echo finished 我在Windows 7上运行此脚本,工作目录设置为c:\。 正如预期的那样,脚本打开一个新的命令shell,其工作目录设置为c:\tmp,环境设置如脚本中所定义 作为下一步,我在这个shell中进行了Control-C,在这里我被要求终止批处理作业(Y/N)?。 用Y回

Perl 使用另一个文件中的子例程

考虑: 文件display.pl 文件temp.pl 当我执行temp.pl时,它给出了一个错误: 在display.pl第2行找不到没有包或对象引用的方法disp 您忘记在display.pl中disp{之前编写sub,因此Perl不知道您正在尝试定义函数 始终使用strict和warnings,这样可以避免此类问题。此外,正如@NEW所指出的,您需要以1结尾display.pl;因为require要求文件以真值结尾 更正后,您的代码将是: use strict; use warnings;

Perl 如何在没有GUI的情况下运行代码

我手中有一个相当长的perltk代码,我希望以批处理模式运行模拟(不使用GUI)。e、 我想用“myprog.pl-b”这样的脚本来运行它,而不是在GUI中设置所有参数并单击按钮 我当前的方法是使用一个单独的XML文件进行配置,并使用函数“after”,这意味着GUI将弹出并启动模拟,然后在某个时间后退出。它现在起作用了,但我有一个问题:有没有更好的方法来解决这个问题?有没有可能在后台显示GUI(因此我们不会看到它)而不是弹出? 更改程序,使其可以从图形界面和命令行界面访问。将其真正的功能分解成

使用Perl DBI获取所有记录

我有一个使用连接的Perl脚本。我使用一个子例程打开并读取SQL脚本文件。我只打印了一张记录,我应该还有两张(总共三张记录)。我怎样才能得到所有的记录 结果: Alert:OUTBOUND_DATA:0 脚本: my $dbh_oracle = DBI->connect( $CFG{oracle_dbi_connect}, $CFG{db_user}, $CFG{db_cred}, {AutoCommit =

RapidShareAPI-Perl脚本

我正在尝试将Rapidshare上载脚本实现到我的项目中,但它似乎已经过时了。我总是在终端中收到以下错误: File /home/googles/Downloads/weave_minimal.tgz has 10953 bytes. Calculating MD5HEX... MD5HEX is 12c7dfef24eb0bb249a1f4723cd8daf6 (10953 bytes analyzed) Trying to upload to your prem account. Getti

Perl Vim代码读取-关闭/最小化支架

我必须阅读一些大型Perl脚本,我想知道你们如何像GUI文本编辑器一样在Vim中添加“最小化”括号功能。由于这个原因,我很难理解代码,如果我能最小化那些巨大的If,函数等等。。。我会非常感激的。通过最小化,我想你指的是代码“折叠” zC递归关闭光标下的所有折叠,zC关闭单个折叠。zo在光标下打开一个折叠,而zR递归打开所有折叠 另见 :help :foldmethod 对于Perl,您将需要:set foldmethod=syntax“folding”这个词,我敢打赌这是一个很难理解的词。 :

perl grep函数

我使用的是perl grep,如下例所示。bfh是由open命令创建的用于读取的文件句柄 @searchResults = grep {/,\s*${searchRecId}\s*,\s*${searchSwId}\s*/} <$bfh>; 我不想给出文件句柄或数组。我只想像unix grep命令一样执行它 将覆盖1000个文件。当我读到一个100000行的文件时,当涉及到grep时,我希望直接得到文件名,而不是打开1000个文件句柄并在hashmap中维护 你可以做: use

如何在Perl中获取父类实例

我在Perl中使用/创建了很多类,其中一个常见的事情是访问父对象的某些属性。例如,假设我有类A和类B,它们很简单: A.pm级 package Class_A; use strict; use warnings; sub new { my $class = shift; my $this = { history_data => [], }; bless $this, $class; } package Class_B; use stric

使用perl使用多个命令进行安全系统调用

我有一个Perl脚本,可以从web表单读取一些信息。为了进行适当的清洁,我想使用所描述的系统语法 他们建议您应该以以下形式形成系统命令:system cat,/usr/stats/$username;因此username变量只能被解释为cat的参数 如果我有一个命令的形式是systemexport REPLYTO=\$from\;回音\$body\\邮件-s\$subject\;它有多个系统命令,如何正确清理系统调用?在开始之前,请注意,您可以通过设置$ENV{REPLY_TO}在Perl中进行

Perl 使用模板工具在多列表中显示数组?

我有一组电话号码。我想在表格中显示这些数字,每行5个数字。我可以在模板工具包中执行此操作而不修改数据结构吗?您可以使用该插件: phone_numbers是对电话号码数组的引用,该数组应传递给模板工具包。例如: ... $data->{phone_numbers} = \@phone_numbers; $template->process('example.tmpl', $data) || die "Template processing failed: ", $templ

使用perl替换第一行文件时出现的问题

我有一个文件如下所示: I,like blah... perl -i -pe 'if ($. == 1) { s/.*/i,am/; }' yourfile.txt 我只想将第一行替换为“I,am”,以获得: i,am blah... 这些是大文件,所以我就是这么做的(): 我看起来像是来自like的“ke”还在那里。如何去除它?如果替换的长度与原始长度不同,则不能使用此技术。例如,您可以创建一个新文件,然后将其重命名为原始名称 open my $IN, '<', 'input.t

Perl tk-条目小部件之间的选项卡

我有一个与postgresql数据库交互的非常简单的GUI。大型机分为4个象限,每个象限有4个条目小部件。下面是一个象限的示例代码 my $f_blue = $bottom_half->Frame(-bg=>'BLUE')-> pack(-side=>'left', -expand=>1, -fill=>'both'); $f_blue->Label(-text=>'BLUE', -bg=>'blue', -fg=>'white')-&

perl中的rel2abs,用于解析文件路径中的

我希望打印的行没有。。在解决了它之后,类似于下面的内容 /local/mnt/LINUX/platform/../source/gnss/api/src/v02.c /local/mnt/LINUX/project/../source/gnss/api/../../hexagon-infra/q6-00/include/internal.h 请您提供帮助,提前谢谢。您必须使用Cwd模块中的realpath函数: 您必须使用Cwd模块中的函数realpath: 工作 工作 不一定指 /local

Perl 检查文件中是否有值:最佳和最快实践?

我需要检查一个特定的值——一个没有空格的字符串——是否在文件中的特定位置。该文件包含多行数据,每行由*和空格分隔的数据组成。我们寻找的值总是每行的第六个值。例如,otherval1*otherval2*otherval3*otherval4*otherval5*值以获取*等。但在一行中的另一个位置可以找到相同的值。但我们不想得到那个值。此检查期间,其他用户可以打开该文件,因此需要将其删除。做这件事最好最快的方法是什么。我可以想出两种方法: my $value = "qt7nxve"; my $c

为什么Perl中的函数可以全局访问

我刚刚开始阅读Perl。我知道现在提出一个我应该继续阅读的问题还为时过早,但我无法控制自己 我是C++开发人员。我在Perl中注意到的是函数是全局的。要使用很多函数,不需要包含任何内容。例如,在C++中,如果要使用字符串,则必须从STL中包含字符串。在perl中,操作字符串或数字数学函数不需要包含任何内容。所以,我的问题是: 为什么要公开一切?如果我想操纵字符串,为什么需要访问数学函数? perl,不像C++,有大量的预定义函数,它们的名称实际上是几乎关键字。根据ikegami上面的评论,它们是

cron只运行一个Perl脚本实例

我需要定期(每3-5分钟)通过cron运行Perl脚本。我想确保一次只运行一个Perl脚本实例,所以在前一个周期完成之前,下一个周期不会开始。这可以/应该通过cron、Perl或我需要在脚本级别处理的一些内置功能来实现吗 我对Perl和cron非常陌生,因此非常感谢您的帮助和一般建议。AFAIK Perl没有这种内置功能。您可以在启动应用程序时轻松创建临时文件,并在脚本完成后将其删除。鉴于我通常会编写一个守护进程(服务器),在作业运行之间(即sleep())很好地等待,而不是尝试使用cron进行

perl打印到标准输出而不是打印到文件

所以在这件事上我的头撞到了墙上,老实说,我觉得我错过了一些简单的事情。我还认为我的问题要么是herdoc出了问题,要么是我如何使用STDIN出了问题 不管怎样,当我在命令行上运行下面的脚本是以root用户身份运行时,它不是打印到文件,而是打印到STDOUT,这让我非常困惑 sub do_stuff { my $resp = <STDIN>; my $service_file = <<END_FILE; [Unit] Description = tc ha

perl中的用户输入超时

我想提示用户输入,在一段时间后,如果没有响应,脚本必须退出。我有这个密码 eval { local $SIG{ALRM} = sub { die "timeout getting the input \n" }; alarm 5; $answer = <STDIN>; alarm 0; chomp $answer; }; if ($@) { #die $@ if $@ ne

使用apt get而不是cpan安装perl模块的目的

在将必需品加载到系统中时,apt get建议我安装。这似乎是一个愉快的想法,我服从了 在阅读中,我看到一位同行通过CPAN安装和,但随后使用apt get进行安装 在阅读回答之前的几分钟,我已经通过CPAN安装了Dancer。而且它起了作用。这真的很有效 当我通过非CPAN包管理器安装CPAN包时,会发生什么不同?因为我的libtemplate perl来自apt get,或者我的Dancer来自CPAN,所以我需要警惕哪些陷阱?在Debian或基于Debian的发行版(如Ubuntu)上,CP

如何在linux中循环遍历子目录并查找不带";的文件;。csv";在linux上使用perl进行扩展

我已经尝试使用perl-c来查看是否有语法错误。我想我在某种程度上有逻辑上的缺陷。提前感谢您的帮助。首先,open()用于文件。您需要的是opendir()。接下来,当您使用opendir()、readdir()时,它不会保留路径信息,因此您需要将其预先添加到要重命名的文件中。第三,使用词法句柄比使用裸名称更为常见。最后,始终严格使用和使用警告将直接指向问题所在 下面是您的代码的稍微更新版本: #!/usr/bin/perl my $dir = '/path/to/dir'; open( DI

如何在PERL中检查日期的格式是否相同?

我有一个.csv文件。 第二列是日期 日期的格式可能不同 我如何检查以确保它们的格式是否相同,或者我是否可以使用某种方法将所有日期更改为1种特定格式?如果您可以安装DateTime模块,这应该可以工作。你可以添加任何你想要的格式。 您可能会遇到一些问题。您需要特殊的逻辑来处理mmddyy和yymmdd #!/usr/bin/perl use strict; use warnings; use DateTime; my $date1 = '2016-01-07'; my $date2 = '0

如何获得;Var1“;perl中转储程序的值

当我使用下面的代码时,它会给出输出,但我需要“宽度”、“文件\媒体\类型”、“文件\外部”值,但我无法在单个文件中获得该值。我是Perl新手,请帮帮我 代码 输出 $VAR1 = { 'width' => 45, 'file_media_type' => 'image/png', 'file_ext' => 'png', 'PNG_Chunks' => [

如何在perl匹配中正则表达式和组合两个单词?

我试图从给定的行中正则化一个值并分配给name。我没有得到预期的结果。你能建议一下吗 my line = "manager: CN=rakhi\\, test,OU=Site-SIN,OU=Accounts_user,OU=main,OU=site,"; my $ln = qq{$line}; if ($ln =~ /\(([^)]*)/) { print $1; } 预期结果=trakhi始终使用使用警告和使用严格在您的代码中 我猜您正在期待输出rakhi,如果是,请尝试以下方法:

Perl没有删除标量变量。如何使其不初始化已删除的变量';什么内容归零?

我有一个简单的脚本来接受标准输入。我要求变量是一个数字。但很明显,标准输入可以采用类似“Hello World”的字符串。我试图通过使用“undef”使变量未定义来删除该变量,但未定义函数使变量为零。然后我对它做一些数学运算,看看未定义的函数是否真的使我的标量值为零,或者它是否正在从内存中删除变量,因为零的自然对数是未定义的 我认为,在完成重要计算(如管理预算)后,能够从脚本中完全删除临时变量的内容是非常重要的。但Perl似乎不同意。是否有任何方法可以使删除的变量不初始化为零 下面是一个Perl

不带Perl的彩色输出

我有一个发送彩色输出的邮件脚本,但是我不能在Unix机器上使用它,因为它没有安装MIME::Lite模块 有人能推荐一种替代方法来获得所需的彩色输出吗 use MIME::Lite; my (@page_html, @sujet); my $file = 'rpt.html'; open my $ifh, '<', $file or die "Cannot open '$file' for reading: $!"; local $/ = ""; my $content

Perl管道挂起,进程失效

我有一个perl脚本,它使用管道执行另一个脚本: $pid = open (OUTPUT, "my_script.pl 2>&1 |") || ""; if ($pid) { while (<OUTPUT>) { print; } close (OUTPUT); } $pid=open(输出,“my_script.pl 2>&1|”)||; 如果($pid){ 而(){ 印刷品; } 关闭(输出); } my_script.pl派生另一个子进程。

perl子例程条目中未知的奇怪副本

使用“/home/andrew/bin/chroot32.sh/home/andrew/arscode.plx”运行代码时,我遇到了perl中的一个错误 我不确定这是perl错误还是其他错误。这是相关部分: sub record { (my $ctrl = ars_Login($server, $username,$password,undef,undef,$port )) || die "ars_Login:$ars_errstr"; if (!$ctrl) {prin

如何实现对Perl'的https支持;s HTTP::DAV

我试图通过WebDav协议访问远程服务器,更具体地说,是Perl的HTTP::DAV模块 根据其文档,与远程目录的耦合以以下方式进行: use HTTP::DAV; $d = HTTP::DAV->new(); $url = "http://host.org:8080/dav/"; $d->credentials( -user => "pcollins", -pass => "mypass"

上一页 1 2  3   4   5   6    7   8   9  ... 下一页 最后一页 共 982 页