小编Cth*_*har的帖子

如何在两个不同的perl脚本之间共享/导出全局变量?

我们如何在两个不同的perl脚本之间共享或导出全局变量.

情况如下:

first.pl

#!/usr/bin/perl
use strict;
our (@a, @b);
.........
Run Code Online (Sandbox Code Playgroud)

second.pl

#!/usr/bin/perl
use strict;
require first.pl;
Run Code Online (Sandbox Code Playgroud)

我想使用first.pl中声明的全局变量(@a,@b)

另外,假设第二个perl文件中的变量与第一个perl文件相同.但我想使用第一个文件的变量.怎么做到这一点?

variables perl global export

25
推荐指数
2
解决办法
4万
查看次数

如何维护我添加到Perl哈希的键的顺序?

如何在使用以下程序中的哈希计算实际列表的顺序后维护实际列表的顺序?例如,<DATA>

a
b
e
a
c 
d 
a
c
d
b
etc.
Run Code Online (Sandbox Code Playgroud)

使用哈希,我计算每个元素的出现次数.

我想要的是:

a  3
b  2
e  1
c  2
d  2
Run Code Online (Sandbox Code Playgroud)

但是以下程序显示了我的情况.

my (%count, $line, @array_1, @array_2);
while ($line = <DATA>) {
    $count{$line}++ if ( $line =~ /\S/ );
}
@array_1 = keys(%count);
@array_2 = values(%count);
for(my $i=0; $i<$#array_1; $i++)
{
   print "$array_1[$i]\t $array_2[$i]";
}
Run Code Online (Sandbox Code Playgroud)

perl hash data-structures perl-data-structures

20
推荐指数
5
解决办法
2万
查看次数

如何将子例程调用的结果分配给Perl中的数组引用?

是否可以将数组变量赋值给数组引用而不是标量变量?

而不是这个:

($a, $b) = some_sub(\@d, \@e);
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

(@x, @y) = some_sub(\@x1, \@y1);
Run Code Online (Sandbox Code Playgroud)

如果是这样,我怎么能取消引用它.就像前者一样,@$xxxx对我们来说也是如此.

谢谢.

arrays perl reference

3
推荐指数
1
解决办法
255
查看次数

Perl在藏文中的正则表达

我正在尝试删除/删除藏文脚本的倒数第二个字符,如下所示(以下示例中的字符为英文):

$char = "ti.be.tan.|";           
Run Code Online (Sandbox Code Playgroud)

所以我想删除"倒数第二个"字符"." 我用RE的一些知识尝试了以下方式:

$char =~ s/.|$/|/g;
$char =~ s/[.|]$/|/g;
$char = tr/.|//d;       # and later add |.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

regex perl

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

-3
推荐指数
3
解决办法
3473
查看次数