level 1
努力努力♬♬♬
楼主
#!/usr/bin/perl -w
use strict;
use warnings;
my $file=$ARGV[0];
#use Data::Dumper;
use JSON;
my $json = new JSON;
my $js;
open JFILE, "$file";
while(<JFILE>) {
$js .= "$_";
}
my $obj = $json->decode($js);
open(WF,">time.txt") or die $!;
print WF "id\tfutime\tfustat\n";
for my $i(@{$obj})
{
my $vitalsStatus=$i->{'diagnoses'}->[0]->{'vital_status'};
my $submitterId=$i->{'demographic'}->{'submitter_id'};
my $diagnosesAge=$i->{'diagnoses'}->[0]->{'age_at_diagnosis'};
my @subId=split(/\_/,$submitterId); #21
if($vitalsStatus eq 'alive') #22
{
my $days_to_last_follow_up=$i->{'diagnoses'}->[0]->{'days_to_last_follow_up'};
if(defined $days_to_last_follow_up)
{
print WF "$subId[0]\t$days_to_last_follow_up\t0\n";
}
}
else
{
my $days_to_death=$i->{'diagnoses'}->[0]->{'days_to_death'};
if(defined $days_to_death)
{
print WF "$subId[0]\t$diagnosesAge\t$days_to_death\t1\n";
}
}
}
close(WF);
#print Dumper $obj
循环报错
Use of uninitialized value $vitalsStatus in string eq at survival_time.pl line 22, <JFILE> line 8838.
Use of uninitialized value $submitterId in split at survival_time.pl line 21, <JFILE> line 8838.
Use of uninitialized value $vitalsStatus in string eq at survival_time.pl line 22, <JFILE> line 8838.
Use of uninitialized value $submitterId in split at survival_time.pl line 21, <JFILE> line 8838.
Use of uninitialized value $vitalsStatus in string eq at survival_time.pl line 22, <JFILE> line 8838.
Use of uninitialized value $submitterId in split at survival_time.pl line 21, <JFILE> line 8838.
Use of uninitialized value $vitalsStatus in string eq at survival_time.pl line 22, <JFILE> line 8838.
Use of uninitialized value $submitterId in split at survival_time.pl line 21, <JFILE> line 8838.
Use of uninitialized value $vitalsStatus in string eq at survival_time.pl line 22, <JFILE> line 8838.
Use of uninitialized value $submitterId in split at survival_time.pl line 21, <JFILE> line 8838.
Use of uninitialized value $vitalsStatus in string eq at survival_time.pl line 22, <JFILE> line 8838.
Use of uninitialized value $submitterId in split at survival_time.pl line 21, <JFILE> line 8838.
Use of uninitialized value $vitalsStatus in string eq at survival_time.pl line 22, <JFILE> line 8838.
Use of uninitialized value $submitterId in split at survival_time.pl line 21, <JFILE> line 8838
2020年05月03日 21点05分
1
use strict;
use warnings;
my $file=$ARGV[0];
#use Data::Dumper;
use JSON;
my $json = new JSON;
my $js;
open JFILE, "$file";
while(<JFILE>) {
$js .= "$_";
}
my $obj = $json->decode($js);
open(WF,">time.txt") or die $!;
print WF "id\tfutime\tfustat\n";
for my $i(@{$obj})
{
my $vitalsStatus=$i->{'diagnoses'}->[0]->{'vital_status'};
my $submitterId=$i->{'demographic'}->{'submitter_id'};
my $diagnosesAge=$i->{'diagnoses'}->[0]->{'age_at_diagnosis'};
my @subId=split(/\_/,$submitterId); #21
if($vitalsStatus eq 'alive') #22
{
my $days_to_last_follow_up=$i->{'diagnoses'}->[0]->{'days_to_last_follow_up'};
if(defined $days_to_last_follow_up)
{
print WF "$subId[0]\t$days_to_last_follow_up\t0\n";
}
}
else
{
my $days_to_death=$i->{'diagnoses'}->[0]->{'days_to_death'};
if(defined $days_to_death)
{
print WF "$subId[0]\t$diagnosesAge\t$days_to_death\t1\n";
}
}
}
close(WF);
#print Dumper $obj
循环报错
Use of uninitialized value $vitalsStatus in string eq at survival_time.pl line 22, <JFILE> line 8838.
Use of uninitialized value $submitterId in split at survival_time.pl line 21, <JFILE> line 8838.
Use of uninitialized value $vitalsStatus in string eq at survival_time.pl line 22, <JFILE> line 8838.
Use of uninitialized value $submitterId in split at survival_time.pl line 21, <JFILE> line 8838.
Use of uninitialized value $vitalsStatus in string eq at survival_time.pl line 22, <JFILE> line 8838.
Use of uninitialized value $submitterId in split at survival_time.pl line 21, <JFILE> line 8838.
Use of uninitialized value $vitalsStatus in string eq at survival_time.pl line 22, <JFILE> line 8838.
Use of uninitialized value $submitterId in split at survival_time.pl line 21, <JFILE> line 8838.
Use of uninitialized value $vitalsStatus in string eq at survival_time.pl line 22, <JFILE> line 8838.
Use of uninitialized value $submitterId in split at survival_time.pl line 21, <JFILE> line 8838.
Use of uninitialized value $vitalsStatus in string eq at survival_time.pl line 22, <JFILE> line 8838.
Use of uninitialized value $submitterId in split at survival_time.pl line 21, <JFILE> line 8838.
Use of uninitialized value $vitalsStatus in string eq at survival_time.pl line 22, <JFILE> line 8838.
Use of uninitialized value $submitterId in split at survival_time.pl line 21, <JFILE> line 8838