อนุทิน #19586

Perl is too smart. เมื่อกี้หา bug ตัวหนึ่งตั้งนานมากๆ ปรากฎว่าเกิดจากตั้ง package ซ้ำกัน แม้ว่าชื่อไฟล์จะต่างกันแต่ Perl จะอ่านจากบรรทัดแรกของ package ที่บอกว่าเป็นอะไรไม่ได้ดูจากชื่อไฟล์

ตัวอย่างเช่น lib/ukms/ResultSet/DB/Sites.pm กับ lib/ukms/ResultSet/DB/JournalEntries.pm ต่างเขียนบรรทัดแรกว่า package ukms::ResultSet::DB::JournalEntries ทั้งคู่ แต่ไฟล์ JournalEntries.pm จะถูกเรียกก่อน Sites.pm ทำให้สิ่งที่ define ใน Sites.pm ลบสิ่งที่เขียนใน JournalEntries.pm หมด เลยงงว่ามันหายไปได้ยังไง

เขียน:

ความเห็น (0)