in reply to Re: How to combine these 2 subroutines in one?
in thread How to combine these 2 subroutines in one?
sub clean_list { my $type_of_arg=ref(\@_); my @array_with_duplicates=(@_); my @array_no_duplicates; if($type_of_arg eq 'ARRAY') #if the list is passed as an ar +ray { my $previous = ''; while (scalar @array_with_duplicates > 0) { my $next = shift(@array_with_duplicates); if ($previous ne $next) { push(@array_no_duplicates, $next); $previous = $next; } } } elsif($type_of_arg eq 'REF') #if the list is passed as a refere +nce to an array { my %hash; @hash{@{$_[0]}}=(); #@{$_[0]}=keys %hash; @array_no_duplicates=keys %hash; } return (@array_no_duplicates); } open(IN, '<', 'ex5.acc') or die "Could not read file\n"; my @initial_array = <IN>; close IN; @initial_array = sort @initial_array; my @final_array = clean_list(@initial_array); #this works # @final_array = clean_list(\@initial_array); #this does not work # Save the clean table open(OUT, ">", "ex5.acc.CLEAN") or die "Could not create file\n"; print OUT @final_array; close OUT;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: How to combine these 2 subroutines in one?
by Athanasius (Archbishop) on Apr 03, 2014 at 13:45 UTC | |
by Anonymous Monk on Apr 03, 2014 at 14:19 UTC | |
by Anonymous Monk on Apr 03, 2014 at 23:13 UTC | |
by Athanasius (Archbishop) on Apr 04, 2014 at 08:55 UTC | |
by Anonymous Monk on Apr 04, 2014 at 09:14 UTC | |
|