小编Sin*_*nür的帖子

为什么在这个Perl示例中,具有转义字符的字符串的串联工作方式不同?

那里:我是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 escaping

2
推荐指数
2
解决办法
1275
查看次数

使用Perl的DBI,如何加入fetchrow_arrayref的结果?

我是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错误的概念吗?

perl dbi

2
推荐指数
1
解决办法
534
查看次数

执行perl时,'$'转换为'2918 1174 2918'

我有一个吐出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 jquery

2
推荐指数
3
解决办法
286
查看次数

在Perl中,如何使用出现在第一个冒号(:)之前的数字对记录进行排序?

我在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)

sorting perl records

2
推荐指数
1
解决办法
179
查看次数

如何在Windows XP上使用Perl运行可执行文件?

如何使用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 executable

2
推荐指数
1
解决办法
9297
查看次数

如何确保使用Perl的Imager :: Screenshot获取特定窗口的屏幕截图?

我在我的Perl代码中使用Imager :: Screenshot,它确实有效并截取屏幕截图.

现在,每次浏览器在不同位置打开时,意味着开始x和y位置可能不一样.

有没有办法从浏览器而不是桌面起始位置开始截屏.

如果没有(从编程中脱离主题)有一种方法可以将浏览器设置为仅以完整大小打开,无论它打开的是什么程序.用户在单击图标时打开,或者由Perl使用Win32 :: OLE模块打开.

browser windows perl internet-explorer

2
推荐指数
1
解决办法
1693
查看次数

在Perl中,如何从双引号中除去字符串中的空格,并用||替换这些引号?

我试图找到一种方法用管道(||)替换空格和双引号,同时保持双引号内的空格不变.

例如,它会将"word"字词"word"改为"word || word word || word",将"word word word"改为"word || word || word".

现在我有这个工作:

[%- MACRO typestrip(value) PERL -%]
my $htmlVal = $stash->get('value');
$htmlVal =~ s/"/||/g;
print $htmlVal
[%- END -%]
Run Code Online (Sandbox Code Playgroud)

哪个处理用管道替换双引号就好了.

我不知道这应该是多么简单或复杂,或者甚至可以做到,因为我没有编程的实际背景,虽然我曾经使用过一些Perl,但它以前从来没有这样,所以我道歉如果我我没有很好地解释这一点.

regex perl

2
推荐指数
1
解决办法
1243
查看次数

在Perl中,如何使用正则表达式替换运算符替换子字符串中的非ASCII字符?

如何使用此命令:

perl -pi -e 's/[^[:ascii:]]/#/g' file
Run Code Online (Sandbox Code Playgroud)

只更改偏移A处的字符到每行的偏移量B?

regex perl

2
推荐指数
2
解决办法
1124
查看次数

为什么插入printf语句会使我的函数正常工作?

这是我的代码的基本前提:

while(norm_of_error > tol){
  #pragma omp parallel for
  for(i = 1; i <= N*N; i++){
    //printf("thread id: %d\n",omp_get_thread_num());
      :
    int val = based on i
      :
    #pragma omp critical
    x[i-1] = val;
  }
  #pragma omp barrier
  iter++;
}
Run Code Online (Sandbox Code Playgroud)

简而言之,我使用Jacobi迭代方法求解Ax = b.我的问题是,在printf()语句取消注释的情况下,norm_of_error趋向于零并且while循环结束.但是,通过简单地说出printf()声明,这不会发生.任何人都可以给我一个暗示,为什么printf()声明有任何影响?我猜这个问题与omp_get_thread_num()的调用有关,但我不明白为什么会有任何区别.

编辑:我将printf()语句更改为printf("hi\n");,代码工作.注释出来,代码不起作用.

c printf openmp

2
推荐指数
1
解决办法
3246
查看次数

awk 的递归函数

给定一个描述亲子关系名字和姓氏的 csv

$ cat /var/tmp/hier
F2 L2,F1 L1
F3 L3,F1 L1
F4 L4,F2 L2
F5 L5,F2 L2
F6 L6,F3 L3
Run Code Online (Sandbox Code Playgroud)

我想打印:

F1 L1
    F2 L2
        F4 L4
        F5 L5
    F3 L3
        F6 L6
Run Code Online (Sandbox Code Playgroud)

我写了一个如下所示的脚本:

#!/bin/bash
print_node() {
        echo "awk -F, '\$2=="\"$@\"" {print \$1}' /var/tmp/hier"
        for node in `eval "awk -F, '\$2=="\"$@\"" {print \$1}'     /var/tmp/hier"`
        do
                echo -e "\t"$node
                print_node "$node"
        done
}
print_node "$1"
Run Code Online (Sandbox Code Playgroud)

运行脚本:

$ ./print_tree.sh "F1 L1"
awk -F, '$2=="F1 L1" {print $1}' /var/tmp/hier
awk: syntax error near …
Run Code Online (Sandbox Code Playgroud)

awk

2
推荐指数
1
解决办法
1972
查看次数

标签 统计

perl ×8

regex ×2

awk ×1

browser ×1

c ×1

dbi ×1

escaping ×1

executable ×1

internet-explorer ×1

jquery ×1

openmp ×1

printf ×1

records ×1

sorting ×1

windows ×1