데이터가 json으로 변환되는 데 문제가 있으며 그 이유를 모르겠습니다. 나는, 너무 '객체'를 만들고 (JSON 통해) TEXTFILE에 데이터를 저장Perl에서 데이터를 JSON 형식으로 변환합니다.
#constructor
sub new {
my $class = shift;
my $Titel = shift;
my $Text = shift;
my $Time = localtime;
my $self = {};
$self->{text} = $Text;
$self->{create} = $Time;
$self->{edit} = $Time;
my $json = JSON::XS->new();
open WF, '>> $file' || die "Error : $!";
print WF $json->encode($self)."\n";
close WF;
bless $self, $class;
}
: 여기
작동 일부 코드이다.sub edit {
my $self = shift;
my $Text = shift;
my $ID = shift;
my $Time = localtime;
my $json = JSON::XS->new();
$json->allow_blessed(1);
$self->{text} = $Text; #edit text
$self->{edit} = $Time; # edit date
open INPUT, '< $file' || die "Error : $!";
my @data = <INPUT>;
close(INPUT);
open WF, '> $file' || die "Error : $!";
for (my $Count=0; $Count<=$#data; $Count++){
chomp($data[$Count]);
if($Count == $ID){#if line of data found, who is going to be edited
print WF $json->encode($self)."\n";
}else{
print WF $data[$Count]."\n";
}
}
close WF;
}
내가 뭘하려고하는 것은 당신이 더 나은 아이디어가있는 경우 (있습니다 .. TEXTFILE에서 하나 개의 행을 편집하는 것입니다, 저를 보여주십시오 : 나는 몇 가지 데이터를 편집하려고하면
나는, 문제가 : D) 내가 코드 내 절차 사이의 차이를 볼
가 먼저 표시하고 그냥 다시 TEXTFILE에 "널 (null)"글을 하나 ....
... 그
어떤 아이디어가?
두 번째 인수는'open'에 큰 따옴표를 사용해야합니다. 이제는 작은 따옴표로'$ file' 변수를 보간하지 않기 때문입니다. 더 나은 방법은 3 개의 인수 형식을 사용하는 것입니다. 'open input', '<', $ file' –
내 문제는 그 행에 "null"을 다시 쓰는 것입니다. -> print WF $ json-> encode ($ self). "\ n"; <- 파일을 열 수 있습니다. (코드를 잘못 편집했습니다. 죄송합니다. D : '$ file'이 아니라 원래 코드에 경로가 있습니다.) – Prexx
메서드로 "하위 편집"이 호출 되었습니까? 즉 "$ thing-> edit()"? –