lib/DNS/Vi.pm
changeset 16 1cbe9dc60243
parent 15 aa1598910bb0
child 17 86d2b0d707bf
equal deleted inserted replaced
15:aa1598910bb0 16:1cbe9dc60243
     6 use Digest::SHA qw(sha512_hex);
     6 use Digest::SHA qw(sha512_hex);
     7 use File::Temp;
     7 use File::Temp;
     8 
     8 
     9 use base 'Exporter';
     9 use base 'Exporter';
    10 
    10 
    11 our @EXPORT = qw(ttl2h h2ttl parse delta nice edit update show save);
    11 our @EXPORT = qw(ttl2h h2ttl parse delta nice edit update show);
    12 our @EXPORT_OK = ();
    12 our @EXPORT_OK = ();
    13 
    13 
    14 sub parse {
    14 sub parse {
    15     my %arg =  %{pop @_} if ref $_[-1] eq 'HASH';
    15     my %arg =  %{pop @_} if ref $_[-1] eq 'HASH';
    16     my $data = shift;
    16     my $data = shift;
   185     my $tmp = File::Temp->new();
   185     my $tmp = File::Temp->new();
   186     $tmp->print(nice @zone);
   186     $tmp->print(nice @zone);
   187     $tmp->flush();
   187     $tmp->flush();
   188     system $arg{-editor} => $tmp->filename;
   188     system $arg{-editor} => $tmp->filename;
   189     $tmp->seek(0, 0);
   189     $tmp->seek(0, 0);
       
   190     ${$arg{-backup}} = $tmp if $arg{-backup};
   190     return parse(do { local $/ = undef; <$tmp>}, {-skip => $arg{-skip}});
   191     return parse(do { local $/ = undef; <$tmp>}, {-skip => $arg{-skip}});
   191 }
   192 }
   192 
   193 
   193 sub show {
   194 sub show {
   194     my ($add, $del) = @_;
   195     my ($add, $del) = @_;