【发布时间】:2018-06-19 03:57:01
【问题描述】:
脚本1
use strict;
use Data::Dumper;
use Getopt::Long qw(GetOptions);
my @results;
my @result1 = ('Chemisty', '87');
my @result2 = ('French', '80');
my $results_len = scalar @results;
print "============ results [$results_len] ==========================\n";
print Dumper(\@results);
print "==========================**\n";
#
push @results, \@result1;
$results_len = scalar @results;
print "============ results [$results_len] ==========================\n";
print Dumper(\@results);
print "==========================**\n";
#
push @results, \@result2;
$results_len = scalar @results;
print "============ results [$results_len] ==========================\n";
print Dumper(\@results);
print "==========================**\n";
Script2
use strict;
use Data::Dumper;
use Getopt::Long qw(GetOptions);
my @results;
my @result1 = ('Chemisty', '87');
my $results_len = scalar @results;
print "============ results [$results_len] ==========================\n";
print Dumper(\@results);
print "==========================**\n";
#
push @results, \@result1;
$results_len = scalar @results;
print "============ results [$results_len] ==========================\n";
print Dumper(\@results);
print "==========================**\n";
@result1 = ('French', '80');
#
push @results, \@result1;
$results_len = scalar @results;
print "============ results [$results_len] ==========================\n";
print Dumper(\@results);
print "==========================**\n";
在 script2 中...我应该如何清除 result1 以便我可以再次重用它并像在 script1 中一样获得输出?
我尝试了undef,将其设置为空白...如果我再次使用“我的结果1”再次重置它,但这会标记警告
【问题讨论】:
-
"get the output like in script1" - 您是否希望这里的每个人都将您的代码复制/粘贴到文件中并运行它?为什么不在这里发布输出,让每个人都知道你在说什么?
-
让每个段落都成为函数调用?
addToResults(\@results, 'Chemisty', '87') -
理想情况下,执行两次
my(my @row1 = ('Chemisty', '87'); my @row2 = ('French', '80'); my @results = ( \@row1, \@row2 );或while ( my @row = get() ) { push @results, \@row; }),但如果您有重复使用相同数组的异常代码,您也可以复制该数组(push @results, [ @row ];)
标签: perl