我们如何在两个不同的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文件相同.但我想使用第一个文件的变量.怎么做到这一点?
如何在使用以下程序中的哈希计算实际列表的顺序后维护实际列表的顺序?例如,<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) 是否可以将数组变量赋值给数组引用而不是标量变量?
而不是这个:
($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
对我们来说也是如此.
谢谢.
我正在尝试删除/删除藏文脚本的倒数第二个字符,如下所示(以下示例中的字符为英文):
$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)
我究竟做错了什么?