use strict; use warnings; use Data::Dumper; ## Singly Linked List my $head = { data => undef, next => undef }; my $curr=$head; for (my $i=1;$i<5;$i++){ $curr->{next} ={ data =>$i, next =>undef }; $curr= $curr->{next}; } $curr->{next} ={ data=>undef, next=>undef }; $curr=$head; while(defined($curr->{next})){ print "$curr->{data} \n"; $curr= $curr->{next}; } $curr=$head; my $forward; my $previous; ## Reversing Singly Linked List while(defined ($curr->{next})){ $forward = $curr->{next}; $curr->{next}=$head; $previous=$head; $curr=$forward; $head=$curr; } $curr->{next}=$previous; $curr=$head; ## printing the reversed List while(defined($curr->{next})){ print "enterd \n"; print "$curr->{data} \n"; $curr= $curr->{next}; }