我想写点:
die "Error in file $0 line number $line_number_of_this_cmd_in_file \n";
Run Code Online (Sandbox Code Playgroud)
在我的perl脚本文件中.
有帮助吗?多谢!
(perl 5)
我想从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) 我想为我的Perl脚本编写一个输入文件.
此文件包含我的程序的配置.
输入采用Perl格式:
my $var1 = "/home/moon";
my $var2 = 123;
my $var3 = "output.log";
...
Run Code Online (Sandbox Code Playgroud)
我的问题是我不知道如何以这种格式加载此配置文件.有人可以帮忙吗?
下面的代码只适用于没有严格的代码.谁能建议一个更好的方法呢?
%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)