use strict;
use warnings;
my $head = {data => 0, prev => undef, next => undef};
my $previous = $head;
open FILE, "<datastored.txt" or die $!;
while (<FILE>){
chomp;
$previous->{next} = {
"data" => $_ ,
"next" => undef,
"prev" => $previous,
};
$previous = $previous->{next};
}
### Insertar un elemente al inicio de la lista
my $curr = $head;
$curr->{next}= {
"data" => 30,
"next" => $curr->{next},
"prev" => $curr,
};
### Insertar un elemente ak final de la lista
$curr = $previous;
$curr->{prev}= {
"data" => 40,
"next" => $curr,
"prev" => $curr->{prev},
};
## Imprimir desde la cabeza
print "printing from head \n";
$curr = $head;
while (1) {
last unless defined $curr->{next};
print "Current: ", $curr->{data},
"\tPrevious: ", $curr->{prev}{data} // "",
"\tNext: ", $curr->{next}{data} // "", "\n";
$curr = $curr->{next};
}
## Imprimir desde cola
print "Printing From tail \n";
while (1) {
last unless defined $curr->{prev};
print "Current: ", $curr->{data},
"\tPrevious: ", $curr->{prev}{data} // "",
"\tNext: ", $curr->{next}{data} // "", "\n";
$curr = $curr->{prev};
}