那里:我是Perl的新手,并且遇到了字符串连接问题.我有两个字符串:
my $string1 = "hello\U\Q \t\n\f\b\aWorld" . "\n" . "\E";
my $string2 = "hello\U\Q \t\n\f\b\aWorld\n\E";
Run Code Online (Sandbox Code Playgroud)
它们看起来和我一样,直到我打印出来.
$string1看起来像这样:
hello\ \ \
\
\WORLD
Run Code Online (Sandbox Code Playgroud)
和一个铃声.
$string2 就是这个:
hello\ \ \
\
\WORLD\
Run Code Online (Sandbox Code Playgroud)
带有相同的铃声,尾部有反斜杠.
为什么$string2在结尾处得到反斜杠但$string1不是?
我是Perl的新手,我正在编写一个脚本来从数据库中获取一些行:
my @rows = $conn->fetchrow_array(1,2,3);
Run Code Online (Sandbox Code Playgroud)
结果将是三行单列.
12345
56789
12376
Run Code Online (Sandbox Code Playgroud)
我应该如何将他们加在一起呢 12345,56789,56789
我试过了,
my $list = join ",", @rows.
Run Code Online (Sandbox Code Playgroud)
结果: ARRAY(0x14f6de0),ARRAY(0x1508a90),ARRAY(0x15014c0)
通过foreach循环只需用新行打印结果:
12345
56789
12376
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么 ?我有fetchrow_array错误的概念吗?
我有一个吐出html页面的perl.我想使用jquery操作html页面.我已将所有jquery代码放入字符串并将该字符串放入其中
<script type='javascript'> code </script>
Run Code Online (Sandbox Code Playgroud)
块.但是当我执行perl时,我的所有$符号都被转换为2918 1174 2918.所以如果我的代码$(".className")现在我得到了2918 1174 2918(".className")
有人可以指导我吗?我的代码如下:
my $str = "<html><head><script type='text/javascript' src='js/top5jquery-1.6.2.min.js'>";
$str .="<script type='text/javascript'>$('.submitButton').click(function(){ alert('clicked submit button'); });";
$str .="</head><body><input type='submit' value='submit' />Submitting</body></html>";
my $file_name = "/mainDirectory/myfile";
my $fh;
open ($fh, "> $file_name") or die "Can not open $file_name to write";
print $fh $str;
close($fh);
Run Code Online (Sandbox Code Playgroud) 我在Perl中有以下数据序列:
143:0.0209090909090909
270:0.0909090909090909
32:0.0779090909090909
326:0.3009090909090909
Run Code Online (Sandbox Code Playgroud)
请问,我怎样才能根据冒号前的数字对它们进行排序,以此作为输出?
32:0.0779090909090909
143:0.0209090909090909
270:0.0909090909090909
326:0.3009090909090909
Run Code Online (Sandbox Code Playgroud) 如何使用perl运行可执行文件?
例如,我想运行一个普通的notepad.exe.我怎么能实现这个目标?
这就是我所拥有的:
my @args = system("notepad.exe");
system(@args) == 0 or die "system @args failed: $?";
Run Code Online (Sandbox Code Playgroud)
但它返回:
Can't spawn "cmd.exe": No such file or directory blah blah blah.
我错过了什么?
我是Perl的新手.我需要解析一个制表符分隔的文本文件.例如:
From name To name Timestamp Interaction
a b Dec 2 06:40:23 IST 2000 comment
c d Dec 1 10:40:23 IST 2001 like
e a Dec 1 16:03:01 IST 2000 follow
b c Dec 2 07:50:29 IST 2002 share
a c Dec 2 08:50:29 IST 2001 comment
c a Dec 11 12:40:23 IST 2008 like
e c Dec 2 07:50:29 IST 2000 like
c b Dec 11 12:40:23 IST 2008 follow
b a Dec 2 08:50:29 IST 2001 share
Run Code Online (Sandbox Code Playgroud)
解析后,我需要根据用户交互创建组.在这个例子中 …
我希望修剪一个字符串,该字符串将逐行读取文件.但是,我只想从字符串中提取电子邮件,但每次都会更改.例如,唯一的内容是域名@domain.com.
所以对于输入字符串
00:00:50,004 ERROR [SynchronousCallback] Cannot process resource: test.test@domain.com Channel: channel16
Run Code Online (Sandbox Code Playgroud)
什么正则表达式将寻找@domain.com并拉出所有test.test@domain.com.我有一个正在寻找字符串的正则表达式m/@domain.com/i但我不知道如何@domain.com在整个字符串中定位后操作字符串.
我希望输出只是电子邮件 test.test@domain.com
我有这个字符串
my $word = "Chase_^%798(987%55,.#*&^*&Chase_$&^**&(()%%hjjlhh";
Run Code Online (Sandbox Code Playgroud)
期望的输出是
Chase_^%798(987%55,.#*&^*& Chase_$&^**&(()%%hjjlhh
字符串"Chase_"是我应该将它们分开的唯一线索.使用split我失去了字符串"Chase_".然后我应该连接它们.我对如何分割它没有任何想法,但也"Chase_"应该存在字符串
我有一个大约100,000个元素的字符串数组.我需要迭代每个元素并用其他单词替换一些单词.这需要几秒钟的纯perl.我需要尽可能加快速度.我正在测试使用以下代码段:
use strict;
my $string = "This is some string. Its only purpose is for testing.";
for( my $i = 1; $i < 100000; $i++ ) {
$string =~ s/old1/new1/ig;
$string =~ s/old2/new2/ig;
$string =~ s/old3/new3/ig;
$string =~ s/old4/new4/ig;
$string =~ s/old5/new5/ig;
}
Run Code Online (Sandbox Code Playgroud)
我知道这实际上并没有替换测试字符串中的任何内容,但它仅用于速度测试.
我对Inline :: C寄予厚望.我之前从未与之合作,Inline::C但在阅读了一下之后,我认为实施起来相当简单.但很显然,即使调用存根函数,它什么都不是很多慢.这是我测试过的片段:
use strict;
use Benchmark qw ( timethese );
use Inline 'C';
timethese(
5,
{
"Pure Perl" => \&pure_perl,
"Inline C" => \&inline_c
}
);
sub pure_perl { …Run Code Online (Sandbox Code Playgroud) 我只想找到在XML :: Simple中禁用排序操作的方法
例如:
#!/usr/bin/perl
use strict;
use warnings;
use XML::Simple;
my %my_xml = (
NAME => [ 'test' ],
EMAIL => [ 'test@example.com' ],
ID => 12,
);
my $xs = XML::Simple->new;
print $xs->XMLout(\%my_xml, RootName => "datas", NoSort => 1);
__END__
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
<datas ID="12">
<EMAIL>test@example.com</EMAIL>
<NAME>test</NAME>
</datas>
Run Code Online (Sandbox Code Playgroud)
但我希望输出为:
<datas ID="12">
<NAME>test</NAME>
<EMAIL>test@example.com</EMAIL>
</datas>
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
perl ×10
regex ×2
dbi ×1
escaping ×1
executable ×1
graph ×1
inline-c ×1
jquery ×1
performance ×1
records ×1
sorting ×1
xml ×1
xml-simple ×1