นี่คือคำสั่ง PDL::Coursep ที่สามารถเรียกใช้ในผู้ให้บริการโฮสติ้งฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
PDL::Course - การเดินทางผ่านเอกสารของ PDL ตั้งแต่ระดับเริ่มต้นไปจนถึงระดับสูง
ผู้เขียน, วัน
เรื่องนี้เขียนโดย David Mertens และตัดต่อโดย Daniel Carrera
คำนำ
เอกสารของ PDL นั้นกว้างขวาง บางส่วนครอบคลุมเวทย์มนตร์แกนลึกในขณะที่บางส่วนครอบคลุม
หัวข้อทั่วไปเช่น IO และการคำนวณเชิงตัวเลข สิ่งเหล่านี้เกี่ยวข้องกันอย่างไร? ที่ไหนควร
คุณเริ่ม?
เอกสารนี้เป็นความพยายามที่จะดึงเอกสาร PDL หลักทั้งหมดเข้าด้วยกันอย่างสอดคล้องกัน
หลักสูตรการศึกษาตั้งแต่ระดับเริ่มต้นจนถึงผู้เชี่ยวชาญ
ฉันได้แจกแจงทุกอย่างตามระดับของความเชี่ยวชาญ และในความเชี่ยวชาญที่ฉันได้กล่าวถึง
เอกสารประกอบ ไลบรารี และโมดูลเวิร์กโฟลว์ โมดูลเอกสารมีประโยชน์สำหรับ
สิ่งที่พวกเขาบอกคุณ โมดูลไลบรารีมีประโยชน์สำหรับฟังก์ชันที่กำหนดไว้สำหรับ
คุณ; โมดูลเวิร์กโฟลว์มีประโยชน์สำหรับวิธีที่ช่วยให้คุณทำงานให้เสร็จได้
ในรูปแบบใหม่และแตกต่างกัน
เบื้องต้น
หากคุณเพิ่งเริ่มใช้ PDL โมดูลเอกสารเหล่านี้จะช่วยให้คุณเริ่มต้นได้ถูกต้อง
เส้นทางการใช้ PDL
เอกสาร
โมดูลที่บอกวิธีเริ่มใช้ PDL ส่วนใหญ่เป็นโมดูลห้องสมุด
ในทางเทคนิค แต่จะรวมไว้เมื่อคุณ "ใช้ PDL" ดังนั้นฉันจึงรวมไว้สำหรับ
เอกสาร
หลังจากสามรายการแรก เอกสารส่วนใหญ่ที่แสดงด้านล่างนี้ค่อนข้างแห้ง บางทีพวกเขาอาจจะ
สรุปได้ดีขึ้นด้วยตารางหรือบทสรุปที่ดีกว่า อย่างน้อยคุณควรสแกนผ่านไปยัง
ทำความคุ้นเคยกับความสามารถพื้นฐานของ PDL
· PDL::ปรัชญา PDL::เริ่มด่วน
แนะนำสั้น ๆ สองสามข้อเกี่ยวกับ PDL คนที่สองเป็นบิตมากขึ้นบนมือ ถ้าคุณ
ยังใหม่กับ PDL คุณควรเริ่มด้วยสิ่งเหล่านี้
· PDL::พื้นฐาน
ครอบคลุมกิจวัตรการสร้าง piddle พื้นฐาน เช่น "ลำดับ", "rvals" และ "logxvals" เป็นชื่อ
สุ่มไม่กี่ ยังครอบคลุมถึง "hist" และ "transpose"
· PDL::Ufunc
อธิบายคอลเลกชั่นของฟังก์ชันในตัวจำนวนมาก ซึ่งกำหนด piddle N-dimension
จะสร้างพิดเดิ้ลที่มีมิติ N-1
· PDL::NiceSlice
PDL เติบโตขึ้นในช่วงเปลี่ยนสหัสวรรษและ NiceSlice ก็มาถึง
ฉากหลังจากนั้นเล็กน้อย เอกสารบางฉบับยังไม่ทัน NiceSlice คือ
วิธีที่ 'ทันสมัย' ในการหั่นและหั่นลูกเต๋าของคุณ อ่านเรื่องย่อแล้วเลื่อนลง
ไปที่ The New Slicing Syntax. หลังจากคุณอ่านจนจบแล้ว ให้กลับไปอ่าน
สิ่งที่อยู่ด้านบน
· PDL::ดั้งเดิม
กำหนดฟังก์ชันในตัวที่มีประโยชน์มากมาย สิ่งเหล่านี้คือสิ่งที่
ผู้เริ่มต้นมักจะเขียนลงในรายการและพูดว่า "ฉันจะทำ xxx ได้อย่างไร" คุณจะ
เกี่ยวกับการเรียนรู้เชือกหลังจากที่คุณได้อ่านเอกสารนี้แล้ว
· การคัดเลือกจาก PDL::Core
เช่นเดียวกับ PDL::Primitive กำหนดชุดฟังก์ชันที่มีประโยชน์จำนวนมาก น่าเสียดายที่ . บางส่วน
ฟังก์ชั่นค่อนข้างลึกลับ แต่ผสมผสานกับส่วนที่เหลือของความเรียบง่ายและ
คนง่าย ข้ามเอกสารทั้งหมด ข้ามฟังก์ชันที่ซับซ้อนไปก่อน
ฉันจะชี้ให้เห็นโดยเฉพาะฟังก์ชัน "ประมาณ"
Workflow
· Perldl หรือ pdl2 Shell
Perldl Shell เป็น REPL (Read-Evaluate-Print-Loop กล่าวอีกนัยหนึ่งพรอมต์หรือ
เชลล์) ที่ให้คุณทำงานกับ PDL (หรือ Perl ใด ๆ สำหรับเรื่องนั้น) ใน 'เรียลไทม์'
กำลังโหลดข้อมูลจากไฟล์ การพล็อต การจัดการ... อะไรก็ตามที่คุณสามารถทำได้ในสคริปต์
คุณสามารถทำได้ใน PDL Shell พร้อมคำติชมทันที!
ห้องสมุด
· สพป
โมดูลตัวทำงานหลัก คุณจะรวมสิ่งนี้ไว้ในเกือบทุกโปรแกรม PDL ที่คุณเขียน
ปกติ การใช้
โมดูลประเภทต่างๆ ที่คุณน่าจะใช้ตามปกติในสคริปต์หรือจากภายใน
เปลือก perldl บางโมดูลเหล่านี้คุณอาจไม่เคยใช้เลย แต่คุณควรระวังไว้
ที่มีอยู่ในกรณีที่คุณต้องการฟังก์ชัน
เอกสาร
· PDL::ชิ้น
นอกเหนือจากการอธิบายฟังก์ชันการแบ่งส่วนและการหั่นลูกเต๋าแบบเดิม - ซึ่งคุณ
มักจะใช้ PDL::NiceSlice ได้ ซึ่งยังครอบคลุมถึงฟังก์ชันการจัดการมิติต่างๆ อีกด้วย
เช่น "mv", "xchg" และ "reorder" นอกจากนี้ยังจัดทำเอกสาร "ช่วง" อย่างละเอียด
ฟังก์ชัน ซึ่งมีประสิทธิภาพมาก และครอบคลุมฟังก์ชันภายในจำนวนหนึ่ง ซึ่ง
อาจจะข้ามไปได้
· PDL::การทำดัชนี
ข้อมูลนี้ครอบคลุมแนวคิดเชิงลึกที่คุณจำเป็นต้องเข้าใจจริงๆ
ใช้ PDL อย่างเต็มศักยภาพ มันซับซ้อนมากขึ้นเมื่อคุณทำไปดังนั้นอย่าเป็น
มีปัญหาถ้าคุณพบว่าตัวเองสูญเสียความสนใจไปครึ่งทาง อย่างไรก็ตามการอ่าน
เอกสารนี้จะทำให้คุณเข้าใกล้การตรัสรู้ของ PDL มากขึ้น
· PDL::IO
PDL มีโมดูล IO ค่อนข้างน้อย ซึ่งส่วนใหญ่จะกล่าวถึงในโมดูลสรุปนี้
· PDL::เคล็ดลับ
คอลเลกชันของแนวคิดบางประการของ Tuomas สำหรับการนำ PDL มาใช้ให้เกิดประโยชน์
· PDL::ค่าที่ไม่ดี
อธิบายว่าค่านิยมที่ไม่ดีคืออะไร อย่างไร และทำไมจึงนำไปปฏิบัติ
· การเลือกจาก Inline::Pdlpp
แม้ว่าการเขียนโค้ด PDL::PP จะถือเป็นหัวข้อขั้นสูง และครอบคลุมอยู่ใน
ในส่วนถัดไป คุณควรระวังว่ามันเป็นไปได้ (และง่ายอย่างน่าประหลาดใจ) ถึง
เขียนโค้ดที่รับรู้ PDL คุณไม่จำเป็นต้องอ่านทั้งหมดในตอนนี้ แต่เพื่อให้ได้มาบ้าง
รู้สึกว่ามันทำงานอย่างไร คุณควรอ่านทุกอย่างผ่านตัวอย่างแรก NS
สำเนาของเอกสารนี้มีอยู่ใน PDL::PP-Inline
· PDL::วัตถุ
อธิบายวิธีการ subclass ของ piddle object
· PDL::ดัชนี
สิ่งนี้ถูกกล่าวถึงในคำนำ เป็นไฟล์ที่สร้างขึ้นโดยอัตโนมัติซึ่งแสดงรายการ
โมดูล PDL ทั้งหมดบนคอมพิวเตอร์ของคุณ มีหลายโมดูลที่อาจอยู่ในของคุณ
เครื่องแต่ที่ไม่ได้บันทึกไว้ในที่นี้ เช่น การผูกกับไลบรารี FFTW หรือ
จีเอสแอล. ให้มันอ่าน!
ห้องสมุด
· PDL::คอมเพล็กซ์
รองรับจำนวนเชิงซ้อน ไม่ PDL ไม่มีการรองรับจำนวนเชิงซ้อนในตัว
หลัก แต่สิ่งนี้จะช่วยคุณได้
· PDL::FFT
Fast Fourier Transform ของ PDL หากคุณมี FFTW คุณน่าจะใช้ประโยชน์
ของมัน; นี่คือการใช้งานภายในของ PDL และควรมีให้ใช้งานได้เสมอ
· GSL
PDL ไม่มีการผูกมัดสำหรับทุกไลบรารีย่อยใน GNU Scientific Library แต่มัน
มีค่อนข้างน้อย หากคุณได้ติดตั้ง GSL ไว้ในเครื่องของคุณ โอกาสที่เหมาะสมก็เพียงพอแล้ว
ว่า PDL ของคุณมีการเชื่อมโยง GSL สำหรับรายการการเชื่อมโยง GSL ทั้งหมด โปรดดูที่
PDL::ดัชนี.
· PDL::ฟังก์ชัน
อินเทอร์เฟซที่ค่อนข้างสม่ำเสมอกับโมดูลการแก้ไขต่างๆ ใน PDL
· PDL::แย่
รวมฟังก์ชันค่าเสียหายพื้นฐานบางอย่าง รวมถึงฟังก์ชันเพื่อสอบถามว่า piddle หรือไม่
มีค่าที่ไม่ดี ("isbad") และฟังก์ชันเพื่อกำหนดองค์ประกอบบางอย่างเป็นค่าที่ไม่ดี ("setbadat" และ
"เซตบาดิฟ") ค่าที่ไม่ดีถูกใช้ใน PDL::Graphics::PLplot's
xyplot เพื่อสร้างช่องว่างในพล็อตบรรทัด
· PDL::DiskCache
โมดูลเจ๋ง ๆ ที่ให้คุณผูกอาร์เรย์ Perl กับคอลเลกชันของไฟล์ใน
ดิสก์ซึ่งจะถูกโหลดเข้าและออกจากหน่วยความจำเป็น piddles หากคุณพบว่าตัวเอง
การเขียนสคริปต์เพื่อประมวลผลไฟล์ข้อมูลจำนวนมาก โดยเฉพาะอย่างยิ่งหากการประมวลผลข้อมูลนั้นไม่ใช่
โดยจำเป็นต้องเรียงตามลำดับ คุณควรพิจารณาใช้ PDL::DiskCache
· PDL::ชาร์
คลาสย่อย PDL ที่ให้คุณจัดเก็บและจัดการคอลเลกชันของความยาวคงที่
สตริงอักขระโดยใช้ PDL
· PDL::Image2D
ชุดวิธีการทั้งหมดสำหรับจัดการรูปภาพซึ่งข้อมูลรูปภาพถูกเก็บไว้ใน a
ถ่ายปัสสาวะ. ซึ่งรวมถึงวิธีการบิด (ทำให้เรียบ) การเติมรูปหลายเหลี่ยม การปรับขนาด
การหมุนและการบิดเบี้ยว เป็นต้น
· PDL::ImageND
มีฟังก์ชันบางอย่างที่เกี่ยวข้องกับการประมวลผลภาพตามแนวคิด แต่ซึ่ง
สามารถกำหนดข้อมูลมิติที่สูงกว่าได้ ตัวอย่างเช่น โมดูลนี้กำหนดสูง-
การบิดเบี้ยวของมิติและการสอดแทรก เป็นต้น
· PDL::ImageRGB
กำหนดฟังก์ชันที่เป็นประโยชน์สำหรับการทำงานกับข้อมูลภาพ RBG มันไม่ได้มีคุณสมบัติมาก-
อิ่มแต่อาจมีของแถมให้ด้วย แต่ถ้าไม่มีก็เติมเพิ่มได้ตลอด!
· PDL::แปลงร่าง
สร้างคลาสการแปลงซึ่งช่วยให้คุณสร้างการแปลงพิกัดต่างๆ
ตัวอย่างเช่น หากข้อมูลของคุณคือชุดของพิกัดคาร์ทีเซียน คุณสามารถสร้าง a
แปลงวัตถุเพื่อแปลงเป็นพิกัดทรงกลม - ขั้ว (แม้ว่าจะมีหลายอย่างเช่น
การแปลงพิกัดมาตรฐานถูกกำหนดไว้ล่วงหน้าสำหรับคุณ ในกรณีนี้จะเรียกว่า
"t_spherical")
· PDL::Opt::เริม
แพ็คเกจนี้ระบุว่า "ใช้การเพิ่มประสิทธิภาพ Simplex ที่ใช้กันทั่วไป
อัลกอริธึม" ฉันจะถือว่าถ้าคุณต้องการอัลกอริธึมนี้ คุณรู้อยู่แล้ว
มันคืออะไร.
· PDL::คณิตศาสตร์
ชุดของฟังก์ชันทางคณิตศาสตร์ที่มีมาตรฐานพอสมควร เช่น ตรีโกณมิติผกผัน
ฟังก์ชัน ฟังก์ชันไฮเปอร์โบลิกและการผกผันของฟังก์ชัน และอื่นๆ โมดูลนี้คือ
รวมอยู่ในการโทรมาตรฐานเพื่อ "ใช้ PDL" แต่ไม่ใช่ในเวอร์ชัน Lite
· PDL::เมทริกซ์
มีฟังก์ชันบางอย่างที่ใช้สัญกรณ์เมทริกซ์ทางคณิตศาสตร์มาตรฐานของ row-
การทำดัชนีคอลัมน์แทนที่จะเป็นแถวคอลัมน์มาตรฐาน PDL ปรากฏว่าโมดูลนี้
ไม่ได้รับการทดสอบอย่างหนักกับโมดูลอื่น ๆ ดังนั้นแม้ว่าจะควรทำงานร่วมกับโมดูลอื่น ๆ ก็ตาม
โมดูล อย่าแปลกใจหากมีสิ่งผิดปกติเกิดขึ้นเมื่อคุณใช้งาน (และอย่าลังเลที่จะ
เสนอการแก้ไขใด ๆ ที่คุณอาจพัฒนา)
· PDL::MatrixOps
ให้การดำเนินการเมทริกซ์มาตรฐานมากมายสำหรับพิดเดิ้ล เช่น การคำนวณค่าลักษณะเฉพาะ
การกลับเมทริกซ์กำลังสอง การสลายตัวของ LU และการแก้ระบบสมการเชิงเส้น
แม้ว่าจะไม่ได้สร้างขึ้นบน PDL::Matrix แต่โดยทั่วไปแล้วควรใช้งานได้กับโมดูลนั้น
นอกจากนี้ วิธีการของโมดูลนี้ไม่ได้ขึ้นอยู่กับไลบรารีภายนอกเช่น
Slatec หรือ GSL
· PDL::ลด
ใช้อินเทอร์เฟซกับฟังก์ชันทั้งหมดที่ส่งคืน piddles โดยมีค่าน้อยกว่า
มิติ (เช่น "ซัมโอเวอร์") ซึ่งสามารถเรียกได้โดยเสริม
ชื่อเป็นสตริง
Workflow
· PDL::ตัวโหลดอัตโนมัติ
เปิดใช้งานการโหลดอัตโนมัติสไตล์ Matlab เมื่อคุณเรียกใช้ฟังก์ชันที่ไม่รู้จัก แทน
บ่นและบ่น PDL จะไปตามล่าในไดเร็กทอรีที่คุณระบุใน
ค้นหาไฟล์ที่มีชื่อเหมือนกัน มีประโยชน์อย่างยิ่งเมื่อใช้กับ Perldl Shell
· PDL::DBg
ประกาศฟังก์ชัน "px" ซึ่งสะดวกสำหรับการดีบักสคริปต์ PDL และ/หรือ
คำสั่งเชลล์ perldl
· PDL::ตัวเลือก
สมมติว่าคุณกำหนดฟังก์ชันที่มีประสิทธิภาพและหลากหลาย โอกาสดีที่คุณจะ
ยอมรับอาร์กิวเมนต์ในรูปแบบของแฮชหรือแฮชรีฟ ตอนนี้คุณประสบปัญหาของ
การประมวลผลที่แฮชรีฟ PDL::Options ช่วยคุณในการเขียนโค้ดเพื่อประมวลผลสิ่งเหล่านั้น
ตัวเลือก. (คุณคิดว่า Perl จะมีโมดูลประเภทนี้อยู่มากมาย
แต่ฉันไม่พบเลย) โปรดทราบว่าโมดูลนี้ไม่ได้ขึ้นอยู่กับ PDL สำหรับการใช้งานหรือ
การติดตั้ง
· PDL::pdldoc
เคยเปิดเปลือก perldl เพียงเพื่อค้นหาความช่วยเหลือสำหรับฟังก์ชันเฉพาะหรือไม่?
คุณสามารถใช้ "pdldoc" แทนได้ เชลล์สคริปต์นี้ดึงข้อมูลจากวิธีใช้
ดัชนีโดยไม่ต้องเริ่ม perldl เชลล์
ค้นหาระดับสูง การใช้
ประเภทของโมดูลและเอกสารประกอบที่คุณจะใช้หากคุณเขียนโมดูลที่ใช้ PDL
หรือถ้าคุณทำงานเกี่ยวกับการบำรุงรักษา PDL โมดูลเหล่านี้อาจใช้งานยาก แต่ช่วยให้คุณ
เพื่อจัดการกับปัญหาที่ยากขึ้นของคุณ
· PDL::Lite, PDL::LiteF
การแทนที่แบบ Lite-weight สำหรับ "use PDL" จากมุมมองของมลภาวะเนมสเปซและ
เวลาในการโหลด
· อินไลน์::Pdlpp
สิ่งนี้ถูกกล่าวถึงก่อนหน้านี้ ก่อนที่คุณจะเริ่มอ่านเกี่ยวกับ PDL::PP (ถัดไป) คุณควร
เตือนตัวเองเกี่ยวกับวิธีการใช้งานนี้ Inline::Pdlpp จะช่วยให้คุณทดลองกับ
PDL::PP โดยไม่ต้องผ่านปัญหาในการสร้างโมดูลและสร้าง
makefiles (แต่ดู PDL::pptemplate เพื่อขอความช่วยเหลือ)
· PDL::พีพี
PDL Pre-Processor ซึ่งลดความซับซ้อนอย่างมากทำให้คุณเล่นโค้ด C หรือ Fortran ด้วย
Perl และ piddles ฟังก์ชันพื้นฐานของ PDL ส่วนใหญ่เขียนโดยใช้ PDL::PP ดังนั้น if
คุณกำลังคิดว่าจะรวมห้องสมุดตัวเลขที่เขียนด้วยภาษาซีได้อย่างไร
มองไม่เพิ่มเติม
· PDL::pptemplate
สคริปต์ที่สร้างโมดูลที่ใช้ PDL::PP โดยอัตโนมัติซึ่งควรทำ
ชีวิตของคุณในฐานะผู้เขียนโมดูลจะง่ายขึ้นเล็กน้อย
· PDL::CallExt
อนุญาตให้คุณเรียกใช้ฟังก์ชันต่างๆ โดยใช้ไลบรารีที่แชร์ภายนอก เป็นอีกทางเลือกหนึ่ง
การใช้ PDL::PP. ความแตกต่างที่สำคัญระหว่าง PDL::PP และ PDL::CallExt คือ
อดีตจะจัดการเธรดบนมิติเธรดโดยนัยสำหรับคุณในขณะที่
PDL::CallExt เรียกฟังก์ชันภายนอก PDL::PP โดยทั่วไปเป็นที่แนะนำ
วิธีเชื่อมต่อรหัสของคุณกับ PDL แต่มันจะไม่เป็น Perl หากไม่มีอย่างอื่น
วิธีการทำ
· PDL::การกำหนดค่า
กำหนด %PDL::Config hash ซึ่งมีข้อมูลที่เป็นประโยชน์มากมายที่เกี่ยวข้องกับ your
การสร้าง PDL
· PDL::หมอ
คำอธิบายของข้อตกลงเอกสาร PDL และส่วนต่อประสานกับ PDL
ตัวแยกวิเคราะห์เอกสาร ปฏิบัติตามแนวทางเหล่านี้เมื่อเขียนเอกสารสำหรับ PDL
ฟังก์ชั่นจะทำให้แน่ใจว่าเอกสารที่ยอดเยี่ยมของคุณสามารถเข้าถึงได้จากperldl
เชลล์และจากการเรียกเป็น "barf" (คุณสังเกตเห็นว่า "barf" ใช้เอกสารของคุณหรือไม่?
ได้เวลาอ่าน PDL::Core...)
· PDL::ผู้ส่งออก
แทนที่โมดูลผู้ส่งออกมาตรฐานอย่างง่าย ความแตกต่างที่สำคัญเพียงอย่างเดียวคือ
ว่าโมดูลที่นำเข้าเริ่มต้นคือโมดูลที่มีเครื่องหมาย ':Func'
· PDL::ประเภท
กำหนดฟังก์ชันที่เป็นประโยชน์สำหรับการรับประเภทของพิดเดิ้ลและการรับ
ข้อมูลเกี่ยวกับประเภทนั้น
· PDL::เวอร์ชัน
เพียงกำหนดสเกลาร์ $PDL::Version::Version ด้วย PDL เวอร์ชันปัจจุบันเป็น
กำหนดไว้ใน PDL.pm สิ่งนี้มีประโยชน์มากที่สุดหากคุณเผยแพร่โมดูลของคุณเองบน CPAN ให้ใช้
PDL::Lite หรือ PDL::LiteF และต้องการให้แน่ใจว่าผู้ใช้ของคุณมีข้อมูลล่าสุดเพียงพอ
เวอร์ชันของ PDL เนื่องจากตัวแปรถูกกำหนดใน PDL.pm คุณจึงไม่ต้องการโมดูลนี้
หากคุณ "ใช้ PDL"
ระดับเชี่ยวชาญ การใช้
· PDL::Core::Dev
มีฟังก์ชันที่มีประโยชน์พอสมควรซึ่ง PDL . จำเป็นเท่านั้น
พอร์เตอร์.
· PDL::API
อธิบายวิธีทำพิณ by มือจาก Perl หรือซอร์สโค้ด C ของคุณ โดยใช้ PDL
API
· PDL::ภายใน
อธิบายสาระสำคัญของโครงสร้างข้อมูล PDL หลังจากอ่านสิ่งนี้ (สองสามครั้ง
:) คุณควรจะสร้างพิดเดิ้ลได้อย่างสมบูรณ์ตั้งแต่เริ่มต้น (เช่นโดยไม่ต้องใช้
PDL API) พูดให้แตกต่างออกไปเล็กน้อย ถ้าคุณต้องการเข้าใจว่า PDL::PP ทำงานอย่างไร
คุณจะต้องอ่านสิ่งนี้
ลิขสิทธิ์
ลิขสิทธิ์ 2010 David Mertens ([ป้องกันอีเมล]). คุณสามารถแจกจ่ายและ/หรือแก้ไข
เอกสารนี้อยู่ภายใต้เงื่อนไขเดียวกันกับใบอนุญาต Perl ปัจจุบัน
โปรดดูที่: http://dev.perl.org/licenses/
ใช้ PDL::Coursep ออนไลน์โดยใช้บริการ onworks.net