小编use*_*037的帖子

如何判断`die`时的行号?

我想写点:

die "Error in file $0 line number $line_number_of_this_cmd_in_file \n";
Run Code Online (Sandbox Code Playgroud)

在我的perl脚本文件中.

有帮助吗?多谢!

(perl 5)

perl die line-numbers

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

Perl5:从sub返回几个数组/哈希值

我想从sub返回几个数组和哈希值.当我执行sub时,第一个输出数组将所有输出包装为toguether,其他输出数组保持为空.请看这个例子:

主文件script.pl具有:

use mymodule;
my (@o1, $o2)=mymodule::mysub;
print "o1 gives ".$o1[0]."  ".$o1[1]."  ".$o1[2];
print ", and o2 gives ".$o2."  \n";
Run Code Online (Sandbox Code Playgroud)

文件mymodule.pm看起来像:

package mymodule;
sub mysub{
   my @a = ('a', 'b');
   my $b = 4;
   return (@a, $b);
   };
1;
Run Code Online (Sandbox Code Playgroud)

运行script.pl将返回o1给出ab 4,o2给出.

如您所见,(@ o1,$ o2)与模块返回的值(@ a,$ b)的对应关系不会被保留.

有人能帮我一下吗?多谢!


thx的解释.但是我无法通过你的建议获得目标结果.这段代码:

my ($o1_ref, $o2)=mysub;
my @o1 = @{$o1_ref};
print "o1 has ".$#o1." elements, o2 has ".$#o2." elements\n";
print "the first element of o1 is ".$o1->[0]."\n";

sub mysub{
   my @a = ('a', 'b');
   my …
Run Code Online (Sandbox Code Playgroud)

arrays perl perl-module

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

在Perl中加载配置的最佳方法?

我想为我的Perl脚本编写一个输入文件.
此文件包含我的程序的配置.

输入采用Perl格式:

my $var1 = "/home/moon";
my $var2 = 123;
my $var3 = "output.log";
...
Run Code Online (Sandbox Code Playgroud)

我的问题是我不知道如何以这种格式加载此配置文件.有人可以帮忙吗?

perl configuration-files

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

在Perl中,如何使用变量的内容作为哈希的名称?

下面的代码只适用于没有严格的代码.谁能建议一个更好的方法呢?

%hash5=('key5', 5);
my $hash_name = 'hash5';
print $$hash_name{'key5'}, "\n";
Run Code Online (Sandbox Code Playgroud)

我的目标:我不知道哈希名称.我只知道,它存储在变量$ hash_name中.人们一直在建议:

 my $hashref = \%hashABC;
Run Code Online (Sandbox Code Playgroud)

这需要我知道哈希名称是'%hashABC'.在上面使用这个例子,我想做某事:

 my $hash_name = 'hashABC'; 
 my $hashref = \%$hash_name; # not possible, hope u get the aim
Run Code Online (Sandbox Code Playgroud)

现在我不再需要知道哈希的名字了.这就是我想要的.

很多人!(perl 5)

perl hash strict

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