标签: Perl
parse-recdescent
我有一个web应用程序,它使用由Parse::RecDescent创建的解析器。在应用程序的几个部分中需要一个解析器对象,并且由于解析器占用了相当多的内存,因此到目前为止,我将解析器对象视为一个单独的对象。这在纯CGI环境中效果很好,因为同一对象一次只能解析一个表达式。但是,我不确定在同一个对象解析器同时解析多个字符串的环境中运行时,这是否仍然有效
例如,如果我尝试在FastCGI下运行应用程序,如果两个请求同时使用同一个解析器对象来解析不同的字符串,是否会出现问题
如果需要,我可以更改应用程序
我正在尝试使用Perl和WWW::Mechanize自动登录网站
我所做的是:
$bot = WWW::Mechanize->new();
$bot->cookie_jar(
HTTP::Cookies->new(
file => "cookies.txt",
autosave => 1,
ignore_discard => 1,
我有一个标准的passwd文件&usermap文件,它将unix名称(例如jbloggs)与AD帐户名称(例如bloggsjoe)映射为以下格式:
jbloggs bloggsjoe
jsmith smithjohn
... 等等
如何编辑passwd文件以将原始unix名称与AD帐户名称交换,从而使passwd文件的每一行都具有AD帐户名称。
感谢对perl学习者的任何帮助。使用perl,在中读取AD文件并填充AD Unix哈希,然后您可以使用该哈希执行单行程序替换。当然,这假设您没有重复的用
我正在寻找一行代码,用于识别一系列文件中缺少的文件,并将该列表导出为txt文件。例如:一个名为1to100000的目录包含名为1,2…99991000的PDF,但该系列中缺少一些PDF。我想脚本报告那些丢失的文件到一个txt文件。理想情况下,这将是一个可执行的perl脚本。
谢谢
杰克只需从1数到100000,然后检查文件是否存在
foreach my $num ( 1 .. 100000 ) {
my $fname = "1to100000/$num.pdf";
print
使用tar->write()时,我在使用复杂文件名时出错
代码是:
my $filename= $archive_type."_".$from_date_time."_".$to_date_time."tar";
$tar->write($filename);
我得到的错误是:
无法为“postProcessProbe_2010/6/23/3_2010/6/23/7.tar”创建文件句柄:
test.pl第24行没有这样的文件或目录
如果我将$filename更改为out.tar之类的简
如何在perl CGI脚本中使用linux命令行发送html电子邮件。
我试过:
system(echo $message | mail -s $subject $email);
Perl不是shell。您在这里所做的是使用“裸字”echo调用一些Perl子例程,并传递$message二进制的值,或者使用名为mail的子例程的输出进行编辑,该子例程传递的文件大小为$subject(-s操作符)--我们只能在完全忽略它甚至无法编译的情况下才能实现这一点,因为$email和它前面的表达式之间没有运
出于特定原因,我想将TEST的值更改为200。是否可以更改它?您可以使用相同的语法:*TEST=\200
顺便说一句,您可能需要查看。您可以使用相同的语法:*TEST=\200
顺便说一句,您可能需要查看。尝试添加以下语句:
our $TEST;
*TEST = \100;
$TEST =200
尝试添加以下语句:
our $TEST;
*TEST = \100;
$TEST =200
如果您确实使用constansts,然后使用常量值,那么在使用它之前,请记住Perl通常会优化常量代码,也
我需要在目录中搜索所有以.123结尾的文件
如何(使用Perl)获取这些文件的列表?简单地说:
@files = glob "$dirname/*.123";
简单地说:
@files = glob "$dirname/*.123";
一种方法是使用:
一种方法是使用:
glob应该做这项工作。
如果要递归搜索,可以使用。glob应该执行此任务。
如果要递归搜索,可以使用
我永远无法清楚地理解local在perl中的用法,除非堆栈中定义的任何本地变量都不同于其他现有my变量,并且本地变量也将在其他子例程中可见。来源:
local只为
全局(意味着包)变量。信息技术
不创建局部变量。这
被称为动态作用域。词汇的
范围界定是通过my完成的,它可以工作
更像是C的自动声明
发件人:
local只为
全局(意味着包)变量。信息技术
不创建局部变量。这
被称为动态作用域。词汇的
范围界定是通过my完成的,它可以工作
更像是C的自动声明
local是在将my引入语言之前减少变
执行基于OAuth2的身份验证的最佳包是什么
我基本上需要使用使用者密钥和秘密密钥进行身份验证以获得使用者,并使用访问令牌和秘密来获得令牌。然后使用消费者和令牌获取客户端以用于发出请求?我建议使用CPAN搜索。我会坚持使用Net::OAuth2(它似乎是由非常积极地开发Net::OAuth的同一个人开发的),它包含::Client和::WebServer类
编译程序时,有时会出现以下错误:
make[1]: /usr/bin/perl: Command not found
make[1]: *** [links] Error 127
任何需要perl编译的程序都会发生这种情况,例如openssl和automake。然而:
sh-2.05b# perl -v
This is perl, v5.10.0 DEVEL34342 built for arm-linux-thread-multi
(with 1 registered patch, see
我有一个调用其他程序的Perl脚本,即它使用管道调用system和/或exec和/或open,和/或使用backtick操作符
我能否以这样一种方式运行这个脚本,它将打印出上面每个脚本的参数,以便我可以看到它调用了什么
例如,像这样的程序,我无法修改
#!/usr/bin/perl
sub get_arg {return "argument$_[0]";}
system "./foo", get_arg(1), get_arg(2);
print `./foo abc def`;
可能是这样的
我试图从一个要求验证码的网站自动收集链接。
为此,我捕获了验证码图像,以便可以从外部解决该问题,然后将解决方案作为表单字段的一部分提交。
不知怎的,它不起作用了。我怀疑饼干有问题,但我不确定,如果有人能解决这个问题,我将不胜感激
这是代码。首先,我创建mech对象及其cookie jar:
$cookie_jar = HTTP::Cookies->new;
$agent = WWW::Mechanize->new(cookie_jar => $cookie_jar);
$age
我已经使用配置选项成功地为cross comile配置了perl:
./Configure -des -Dusecrosscompile \
-Dtargethost=172.17.185.91 \
-Dtargetdir=/home/perl/ \
-Dtargetuser=root \
-Dtargetarch=arm-linux \
-Dcc=arm-linux-gcc \
-Dusrinc=/opt/Mozart_Toolchain/arm
标签: Perl
cgimod-perlmod-perl2mod-perl-registry
我有一个Perl中的CGI脚本,它自己生成HTTP错误页。我在mod_perl via下运行它,使用以下Apache2配置:
Alias /perl "/var/www/perl"
<Directory "/var/www/perl">
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
Op
我对Perl中的Fork有一个问题。我想从一个脚本一次执行10个Fork进程,所有10个子(Fork)进程都将执行相同的操作(将文件从一个地方复制到另一个地方)
当我执行这段代码时,我的操作系统会挂起,当我实际检查是否有大量的进程同时分叉
这是我的密码:
while ($callCount <= $totalCalls) {
for (1..$TotalProcessToFork) {
print "Call -> $callCount";
if
大家好,
这对于perl程序员来说非常简单,但不像我这样的初学者,
我有一个xml文件,我使用xml::Simple进行处理,如下所示
my $file="service.xml";
my $xml = new XML::Simple;
my $data = $xml->XMLin("$file", ForceArray => ['Service','SystemReaction',
'Custome
我正在尝试将此命令作为perl脚本的一部分运行:
`mv $n1 ../out`
其中,$n1是我从前面的子例程获取的文件名。
我得到一个错误,如下所示:
mv: missing destination file operand after `test.pl'
Try `mv --help' for more information.
sh: line 1: ../out: is a directory
谁能帮忙吗。如果我单独运行该命令,它可以正常运行 上面是科内拉克说的
您可能应该在调用命
我需要一些关于perl中日期计算的帮助,日期格式为“2012-02-03 00:00:00”。特别是有没有一个工具,我可以使用它来增加天数,并正确地切换到月份和年份?谢谢。请参阅
实际上,使用DateTime::Format类更简洁,并且可以免费进行错误检查
use DateTime::Format::Strptime qw( );
my $format = DateTime::Format::Strptime->new(
pattern => '%Y-%m-%d %H
我是Perl regexp编程的新手(在.NET regexp类中使用它),所以我花了一天多的时间尝试创建regexp,它将从类a(例如class\W)而不是从类B(例如class['])搜索符号。换句话说,模式\W+匹配d'sparil在'上的位置1,但我需要与d'sparil匹配的模式?仅在上的位置8处。如果有其他的\W字符,比如%,@,(),这个模式将只跳过B类[']字符。你知道吗?我试过像[\W^'''']+这样的愚蠢模式,但它工作起来很奇怪……如果它能工作的话。试试:
/[^\w']/
我的perl脚本需要向用户请求密码才能下载一些文件:
print "Your password please: \n";
ReadMode('noecho');
$password = ReadLine(0);
$password =~ s/\n//;
ReadMode(0);
system("wget --user=user --password=\"$password\" http://some.server/data.xml");
do_something();
如果我用$>./scr
交叉柱
我正在尝试使用Perl和Lib::XSLT从一些XML创建一个文本文件,我的转换工作正常,只是Lib::XSLT在文件的开头添加了一个不需要的?XML版本标记,如何阻止它这样做
以下是我的XSLT:
<xslt:stylesheet version="1.0" xmlns:data="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/generic" xmlns:xslt="http://www.w3.org/1999/XSL/Tr
需要每5秒运行一次子程序,但在系统时钟标记处测量。因此,需要在每分钟的0、5、10、15点开始。。。。45、50、55秒(精确到0.1秒)
比如:
for(;;) {
do_sleep(); #time need to sleep to the next 5 second mark
run_this();
}
#!/usr/bin/perl
use 5.014;
use warnings;
use Time::HiRes qw(tv_interval usleep gettim
标签: Perl
ipcpipeoutput-bufferingtty
我试图通过一个互动的过程进行沟通。我希望我的perl脚本成为用户和进程之间的“模仿者”。该过程将文本放入标准输出,提示用户输入命令,将更多文本放入标准输出,提示用户输入命令。。。。。。。提供了基本图形:
User <----STDOUT---- interface.pl <-----STDOUT--- Process
User -----STDIN----> interface.pl ------STDIN---> Process
User <----STDO
我的脚本运行这个命令,它总是给出三个警告。有没有办法过滤掉这些
my $output = `cleartool mktag -view -tag test -reg win_region -host view_server1 -gpath \\\\view_server\\view_directory1\\test.vws/viewstore/view_directory1/test.vws\`
警告如下所示:
cleartool: warning: The global pathname
作为一个初学者,我有一个我认为相当复杂的问题,我希望有人能帮我解决
我有以下文本文件(已删除选项卡)
FILE1.txt
Dog Big
Dog Medium
Dog Small
Rabbit Huge
Rabbit Tiny
Rabbit Middle
Donkey Massive
Donkey Little
Donkey Gigantic
我需要将
我试图在perl脚本中使用tcpdump进行捕获。其想法是捕获10000个数据包或10秒,以先到者为准。我有可以处理10000个数据包的代码,但是如果我向tcpdump发送一个SIGINT或SIGTERM来取消它,输出似乎会损坏,导致脚本的其余部分(处理tcpdump的原始输出)出现问题
相关perl代码:
defined(my $pid = fork()) or die "Cannot fork: $!";
if($pid){
#parent
m
标签: Perl
html-tablehtml-email
我在发送邮件的perl文件中包含以下HTML代码。邮件部分和html部分很好,但是当我尝试在数据中添加perl代码,如$BStatus和$AStatus时,它会按原样显示!上面两个变量的值已经存在,我已经确认了
如何显示其值
$tme=localtime();
$subject='Android Results';
use MIME::Lite;
my $msg = MIME::Lite->new (
Subject => $subject,
From => 'x
我通过perl脚本执行一些shell命令并捕获输出,如下所示
$commandOutput = `cat /path/to/file | grep "some text"`;
if(!$commandOutput)
{
# command not run!
}
else
{
# further processing
}
我还检查命令是否成功运行
$commandOutput = `cat /path/to/file | grep "some text"`;
if(!$com
偶尔,我会发现自己处于这样的情况下,这样做会很有用:
HTML::FormHandler::Field::Text->new(
name=>'name',
label=>'Name',
value=>'Ryan'
)->render();
我发现的文档中没有任何东西表明这不应该起作用。但显然不是这样,因为我得到一个错误,说呈现例程在HTML::FormHandler::Field::Text中不存在
也许我误解了小部
如何在特定范围内搜索特定模式?例如,我想在从$Name:manager到名称结尾(.EON)的区间内搜索G1o,并将其替换为G1o.corry.n
$ NAME : corry
$$.Inc s d
$$.Oc s
$$.TO
G1 ty n1 EE EE M T1 T2 $$SRU
G2 n1 y OO OO M T3 T4 $$SRU
.EON
$ NAME : patrick
$$.Inc c d
$$.Oc c
$$.TO
G1 td n3 EE
标签: Perl
perl-data-structures
我是perl新手,对数据结构不是很在行。我一直在开发一个文本解析器,从文本文件中提取信息并将其存储在数据库中。规则模式现在可以了,但我刚刚注意到,我用于哈希“Time”的键不是唯一的,因为有多个更新(在文本文件中)可能同时发生。散列所做的是创建对我来说不可接受的重复项。所以我想再加一把钥匙,也许是一个独特的计数器,但我不知道该怎么做。因此,我尝试添加另一个键“{$recordcnt}”作为计数器,您将看到它附加在所有哈希语句上。我删除了计数器增量语句(可能我没有正确实现)
另外,如果您查看我的代
我希望有人能帮我解释为什么当我连接两个安卓设备时,我的while循环不会退出
在SO研究的帮助下,我成功地拼凑了下面的代码,但是我添加了一个while循环,以等待对Android“adb设备”命令的响应。我希望坐在这个循环中等待两个Android设备通过USB连接到我的电脑,或者当两个连接的设备打开时。我的代码编译正常,当设备已经打开并连接时,可以通过while循环工作,但是当我用断开的安卓设备的USB电缆启动脚本,然后几秒钟后将USB连接插入我的PC时,脚本仍然处于循环中。我正在Windows
我正在使用perl调试器分析一个大的散列。但是,当我显示它时(使用x),它会填满显示,并且我看不到散列的开始。是否有一种方法可以通过类似于less的方式来传递输出?您可以查看可以通过命令行运行并捕获输出的Devel::Trace。使用perl-d:Trace程序运行
Data::Dumper也非常有用。您可以查看可以通过命令行运行并捕获输出的Devel::Trace。使用perl-d:Trace程序运行
Data::Dumper也非常有用。您可以查看可以通过命令行运行并捕获输出的Devel::T
我正在尝试使用perl的便捷的非贪婪搜索模式,但要让perl在指定的行上搜索和替换,我运气不佳,例如:
perl -pi -e '10,19s/pat1/pat2/g' file
我经常使用sed。有没有一种方法可以使用perl实现这一点?我陷入了困境,sed的非贪心函数不能满足我的需要,但是perl会满足我的需要。使用变量匹配行号
如果要在这两个行号(包括行号)之间替换该图案,可以使用,如下所示:
perl -i -pe 's/pat1/pat2/g if 10 .. 19' file
1
我有一个基本上仍在测试中的脚本。
我想使用文本CSV来分解每小时转储的大量CSV文件
这些文件可能相当大且质量不一致。
有时我会得到奇怪的字符或数据,但通常的问题是行刚刚停止
"Something", "3", "hello wor
封闭报价是我最大的障碍。剧本刚刚结束。错误转到stderr,我的while循环被中断
While (my $row = $csv->getline($data))
我得到的错误是
# CSV_PP ERROR: 2025 - EIQ - Loose une
我有一个如下的CSV文件:
id,item,itemtype,date,service,level,message,action,user
"344","-1","IRM","2008-08-22 13:01:57","login","1","Failed login: \'irm\', database \'irmD\'",NULL,NULL
"346","-1","IRM","2008-08-27 10:58:59","login","1","Ошибка входа:\'\', база
我正在使用它构建一个简单的应用程序,您可以使用您的google+凭据登录,但我在语法方面遇到了问题
我的代码与他们给出的示例非常接近:
use Mojolicious::Lite;
use Mojolicious::Plugin::OAuth2;
plugin 'OAuth2' => {
google => {
key => 'xxxxxx.apps.googleusercontent.com',
secret => 'xxxxxxxx',
},
我正在使用module::Build构建一个Perl模块。Build.PL文件如下:
use strict ;
use warnings ;
use Module::Build;
my $build = Module::Build->new
(
module_name => 'Company::LDAP::SyncAttr',
license => 'perl',
installdirs => 'vendor',
install
我有一个脚本,可以解析包列表。直到运行时才知道包的实际列表。
其中一些包有一对子例程。子例程的名称是固定的(预构建和后构建)。调用这些子例程时遇到问题。
下面的代码说明了我的尝试。
问题是:如何调用一个可能存在的函数,而在它不存在时忽略它
foreach my $p (@pkgList) {
$funcName="$p::preBuild";
## 1. doesn't work. Never defined
if (defined (&$funcName)) {
&a
下面是代码片段!我正在使用Perl模块file::Monitor创建文件通知
#!/usr/bin/perl
use strict;
use warnings;
use File::Monitor;
use File::Basename;
use Time::HiRes qw {usleep};
my $pid,@pids;
sub textfile_notifier {
my ($watch_name, $event, $change) = @_;
my @new_file_pat
我编写了Perl模块,因为我使用了类和对象。
因此,我为类创建对象并访问其方法。
例如:
{
package sample;
sub Bless
{
my $Class = shift;
my $Name = shift;
bless \$Name, $Class;
}
}
{
package test;
our @ISA = qw(sample);
sub Print
{
代码将收到与中类似的警告
警告只有在我严格使用时才会出现。
当我试图在一个更大的子例程中使用这段代码时,它会失败得很惨,所以我想弄清楚为什么下面的代码在我使用strict时会给我这个警告
#!/usr/bin/perl
use strict;
use warnings;
sub foo {
my %args=@_;
my %defaults=(my $config=>'kconfig', my $mem=>'kmem', my $baz=>7);
f
我正在制作一个自动登录网页的脚本,它从以下内容开始:
use HTTP::Cookies;
use WWW::Mechanize;
my $cookie_jar = HTTP::Cookies->new;
my $agent = WWW::Mechanize->new( cookie_jar => $cookie_jar );
my $server_endpoint = "http://10.11.5.2/index.php";
$agent->post(
我不熟悉REST::Client模块。
我制作了一个脚本,通过上面的模块调用API
以下是我的脚本:
use REST::Client;
use Data::Dumper;
my $client = REST::Client->new();
my $resp = $client->request(
'POST',
"https://api.icims.com/customers/{ID}/search/people",
{
'Connect
我有两个csv文件(A,B)
文件A
ADDRESSLINKID;NAMEINDEX;ADDRESSLINKINDEX;ADMINREGIONID;TOWNREGIONID;SIDE
1;19;;;1;0
2;21;;;2;0
3;23;;;3;0
文件B
ID;DISPLAYTYPE;URBAN;LINKLENGTH;PARENTID;SOURCEID;TRUCKTOLL
1;19;;;;1;0
2;21;;;;2;0
3;23;;;;3;0
现在,我将读取文件B中的字段“SourceID
我尝试制作一个Perl脚本,用于“手动”验证SMIME消息。
我真的试了很多,但都不管用
大多数情况下,验证会将
“签名长于密钥”
或者只是给出一个虚假的回报
如果我在控制台上使用OpenSSL,它会像一个魔咒一样工作
CER=mycert
KEY=mykey
MSG=msg.txt
PLA=plain.txt
# create keys with:
# openssl req -x509 -nodes -newkey rsa:1024 -keyout mykey -out mycert
e
标签: Perl
catalysthtml-formhandler
新手警报,
我真的很喜欢perl Catalyst,但是,我已经在谷歌上搜索过了,找不到一个乡村城市动态选择的解决方案。当我从下拉列表中选择一个国家时,我希望这些城市仅更改为该国家的城市。如何在Perl中实现这一点,Catalyst使用HTML::FormHandler
PS
数据来自mysql数据库,具有一对多关系
has_field 'city_id' => (
label => 'City',
type =>
我是Perl新手,正在尝试设置DBI,以便开始使用MySQL。我在安装的make阶段遇到了DBI的一个问题,非常感谢您为解决这个问题提供帮助。非常感谢
安装信息:
/usr/bin/perl -MExtUtils::Command -e 'mkpath' -- blib/lib/DBI
rm -f blib/lib/DBI/Changes.pm
cp Changes blib/lib/DBI/Changes.pm
cp Driver.xst blib/arch/auto/DBI/Driver.x
我正在做套接字编程。
从套接字接收的数据($data)包含4个字节的长度数据+json数据。
我想修剪长度,只解析json
我已经完成了代码,它工作得很好。但我想知道是否有更有效的方法(算法)
在perl中是否有一种有效的方法将数组移动到变量
@tmpp = split(//,$data); #data = socket data
my $t1 = sprintf("%02x%02x%02x%02x",ord($tmpp[0]),ord($tmpp[1]),ord($tmpp[2]),ord(
1 2 3 4 5 6 ...
下一页 最后一页 共 539 页