필자는 Perl에서 파일을 조작하는 것이 비교적 새로운 경험이 있습니다. 이 코드가 내 텍스트 파일에 아무 것도 쓰지 않는 것이 무엇이 잘못된지 나는 모른다. 데이터 구조의 내용을 인쇄하는 다른 함수가 있고 데이터가 거기에 있기 때문에 데이터 구조와 관련이 있다고 생각하지 않습니다. 단지 파일에 기록되지 않습니다. 내가 놓친 게 있니? 소스 서식 개선을 원하지만이 함수가 왜 내 파일에 Perl로 아무 것도 쓰지 않습니까?
이sub saveFile {
open(my $out, ">", "inputs.txt");
for ($i = 0; $i < $#students; $i++) {
print $out $students[$i]->{"name"};
print $out $students[$i]->{"studNum"};
print $out $students[$i]->{"cNum"};
print $out $students[$i]->{"emailAdd"};
print $out $students[$i]->{"gwa"};
print $out $students[$i]->{"subjNum"};
for ($j = 0; $j < $students[$i]->{"subjNum"}; $j++) {
print $out $students[$i]->{"subj"}->[$j]->{"courseNum"};
print $out $students[$i]->{"subj"}->[$j]->{"courseUnt"};
print $out $students[$i]->{"subj"}->[$j]->{"courseGrd"};
}
}
close $out;
print "FILE SAVED.\n";
}
'엄격한 사용; 경고를 사용한다; 그렇지 않은 경우 추가하고 경고를 수정하십시오. 또한 전역 변수를 피하고 함수의 인수로 전달해야합니다. – TLP
해시 참조를 사용할 때'$ students [$ i] -> { "subj"} -> [$ j] -> { "courseNum"}'을 입력하는 대신 한 개의 화살표 만 사용하면됩니다 :'$ students [ $ i] -> { "subj"} [$ j] { "courseNum"}'. –
항상'open'의 리턴 코드를 확인하고 적절한 조치를 취하십시오. '내 $ out ',' ','inputs.txt '를 열거 나 죽습니다. "inputs.txt를 열 수 없습니다 : $! \ n";' –