#!perl
use strict;
use warnings;
use Carp;
sub load_uniq_list(%) {
my %args = @_;
defined $args{fname} or confess "no fname";
ref $args{list} eq 'ARRAY' or confess "no list";
open my $fh, '<', $args{fname} or confess $!;
my %exists = map { chomp; $_ => 1 } <$fh>;
close $fh;
@{$args{list}} = sort keys %exists;
1;
}
sub save_uniq_list(%) {
my %args = @_;
defined $args{fname} or confess "no fname";
ref $args{list} eq 'ARRAY' or confess "no list";
open my $fh, '>', $args{fname} or confess $!;
my %exists = map { $_ => 1 } @{$args{list}};
print $fh "$_\n" for sort keys %exists;
close $fh;
1;
}
use Data::Dumper;
my @list1 = (5,2,1,2,3);
save_uniq_list(fname=>'data.txt', list=>\@list1);
my @list2;
load_uniq_list(fname=>'data.txt', list=>\@list2);
print Dumper \@list2;
exit;