さらに別のデータ構造の疑い。私はそれに直行します。これは私が持っているものです
use strict;
use warnings;
use Data::Dumper;
my $head= undef;
my $tail=\$head;
open FILE, "<datastored.txt" or die $!;
while (<FILE>){
my $node = {
"data" => $_ ,
"next" => undef
};
$$tail=$node;
$tail = \${$node->{"next"}};
};
# #1# Print full list #
print Dumper $head;
# #2# Delete the first node and display data of next node #
$head = $head->{next};
my $value = $head->{data};
これが私が得た出力です
$VAR1 = {
'next' => \{
'next' => \{
'next' => \{
'next' => \undef,
'data' => 'line 4'
},
'data' => 'line 3
'
},
'data' => 'line 2
'
},
'data' => 'line 1
'
};
Not a HASH reference at linkedlist.pl line 32, <FILE> line 4. **<<<< My Problem and hence my question?**
注-ファイルの内容datastored.txt
は単純です
line 1
line 2
line 3
line 4
最初の印刷結果を見ると、$head
明らかにハッシュ内のハッシュなどですが、最初のノードを削除した後、データ構造の整合性が妨げられるのはなぜですか?(出力の最後の行のエラーを参照してください)